[英]loop over array in sed in bash
我有一個包含動物的名稱的線長列表(〜100線),在那里他們被發現並命名時spottings
。 前3行可能是這樣的:
cat 1999 madagascar
dog 1827 peru
kangaroo 1995 new zealand
cat 1827 england
現在我想,以配合另一列表列表want
是這樣的:
cat
dog
kangaroo
但是,我只想獲得也匹配給定year
但不匹配給定location
。 例如,在1827
和england
我這樣做是這樣的:
cat spottings | grep -i -f want | sed '/1827/I!d;/england/Id'
現在,如果我的year
和location
位於這樣的字符串中:
want="1827,1999,2013" # year
nonotwant="england,madagascar,peru" # location
做成這樣的數組:
want=($(echo ${want} | tr ',' '\n'))
如果我要檢查是否want
和donotwant
want
所有元素,它將是這樣的:
sed spottings | grep -i -f want | sed '/1827/I!d;/1999/I!d;/2013/I!d;/england/Id;/madagascar/Id;/peru/Id'
如何檢查兩個數組中的所有元素?
為什么不
fgrep -i -f want spottings | fgrep -i -f WantYear | fgrep -v -f NotWantLocation
其中want
, WantYear
和NotWantLocation
是每行1條條件的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.