我需要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