tail 和 grep + 打印并退出第一场比赛
tail and grep + print and exit first match
我正在寻找一个 1 衬里来跟踪文件并 grep "string",打印第一个匹配项(新行)并退出。
我想到了:
tail -f /var/log/logfile.log -n 0 | grep -m 1 -i string_to_match
实际结果是该命令打印第一个匹配项,但仅在第二个匹配项后退出。
任何帮助将不胜感激
在 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
留在后台 运行 但在文件的下一行之后退出。
我正在寻找一个 1 衬里来跟踪文件并 grep "string",打印第一个匹配项(新行)并退出。
我想到了:
tail -f /var/log/logfile.log -n 0 | grep -m 1 -i string_to_match
实际结果是该命令打印第一个匹配项,但仅在第二个匹配项后退出。 任何帮助将不胜感激
在 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
留在后台 运行 但在文件的下一行之后退出。