我正在寻找1个衬纸来尾随文件并grep一个“字符串”,打印第一个匹配项(换行)并退出。
我想到了:
tail -f /var/log/logfile.log -n 0 | grep -m 1 -i string_to_match
实际结果是该命令显示第一个匹配项,但仅在第二个匹配项后退出。 任何帮助将不胜感激
答案 0 :(得分:3)
在Bash中,您可以使用:
$ grep -m 1 string_to_match <(tail -n 0 -f file)
这可能适用于测试(注意:它会附加到名为file
的文件中):
$ grep -m 1 foo <(tail -n 0 -f file) & sleep 2 ; echo -e bar\\nfoo >> file
[1] 5390
foo
[1]+ Done grep --color -m 1 foo <(tail -n 0 -f file)
编辑:进一步的测试表明,tail
仍在后台运行,但在文件的下一行之后退出。