Можно ли это сделать, но использовать фактический массив строк, где написано "массив"
array=(cat
dog
mouse
fish
...)
awk -F "," '{ if ( $5!="array" ) { print $0; } }' file
Я хотел бы использовать пробелы в некоторых строках в моем массиве. Я также хотел бы иметь возможность совпадать с частичными совпадениями, поэтому «снег» в моем массиве будет соответствовать «снеговику». Он должен быть чувствительным к регистру.
Пример csv
s,dog,34
3,cat,4
1,african elephant,gd
A,African Elephant,33
H,snowman,8
8,indian elephant,3k
7,Fish,94
...
Пример массива
snow
dog
african elephant
Ожидаемый вывод
s,dog,34
H,snowman,8
1,african elephant,gd
Сайрус опубликовал это, что хорошо работает, но не допускает пробелов в строках массива и не будет совпадать с частичными совпадениями.
echo "${array[@]}" | awk 'FNR==NR{len=split($0,a," "); next} {for(i=1;i<=len;i++) {if(a[i]==$2){next}} print}' FS=',' - file