我需要grep多個字符串,但我不知道字符串的確切數量。 我的代碼是:如何在bash中grep多個變量
s2=($(echo $1 | awk -F"," '{ for (i=1; i<=NF ; i++) {print $i} }'))
for pattern in "${s2[@]}"; do
ssh -q host tail -f /some/path |
grep -w -i --line-buffered "$pattern" > some_file 2>/dev/null &
done
現在,代碼沒有做它應該做的。例如,如果我跑./script S1,S2,S3,S4,.....
它打印包含S1,S2,S3 ....
該腳本是應該做的所有行像grep「$ s1」| grep「$ s2」| grep的「$ S3」 ......
完美的作品,謝謝你哦! – user2864207
我沒有使用fflush。林不知道我明白它的作用,但即時通訊的尾部輸出到一個文件,並且一切似乎工作正常。 – user2864207
@ user2864207:'fflush()'和grep選項'--line-buffered'做同樣的事情;也就是說,它會強制每個輸出行立即寫入,而不是被緩存。 – rici