說我有陣列刪除(不只是未設置)從數組中多個字符串不知道它們的位置
a1=(cats,cats.in,catses,dogs,dogs.in,dogses)
a2=(cats.in,dogs.in)
我想刪除一切從A1在A2字符串刪除「在」匹配後,在除了完全匹配的那些(包括「.in」)之外。
因此,從a1中,我想刪除貓,cats.in,dog,dogs.in,但不是catses或dogses。
我想我必須分兩步來做。我發現如何削減了「在」走:
for elem in "${a2[@]}" ; do
var="${elem}"
len="${#var}"
pref=${var:0:len-3}
done
^這給了我‘貓’和‘狗’
我需要什麼樣的命令添加到循環刪除每個ELEM從A1?
的可能重複:HTTP://計算器。 com/questions/2696055 /雙列表中的交叉點 – user2182349
只需使用'unset'即可。這會留下像'0,2,3,4,6'這樣的索引,並從'a1'移除索引'1,5'。然後運行'a1 =(「$ {a1 [@]}」)',將這些索引設置爲'0..4'。 – anishsane
另外,在另一個說明中,數組中的默認分隔符是空格,而不是逗號。 – anishsane