我有一条从this thread起作用的行,它将文件拖尾,直到找到匹配的模式。它运作良好,但我找不到一种方法来抑制之后发生的输出。 该行是:
sh -c 'tail -n +0 -f $logfile | { sed "/EOF/ q" && kill $$ ;}'
管道到/ dev / null不起作用,因为我没有从tail命令那里得到任何输出。此外,我在OSX上,由于语法原因,其他各种sed和awk建议都不起作用。
总是用下面的结尾而不是没有结束:
sh:第10行:14285终止:15 sh -c'tail -n +0 -f $ logfile | {sed“/ EOF / q”&&杀死$$;}'
我也不想显示匹配的文本(上例中的EOF)。 欢迎任何建议。
答案 0 :(得分:0)
你实际上可以丢弃这样的stderr:
sh -c 'tail -n +0 -f $logfile | { sed "/EOF/q" && p=$$ && kill $((p+1)) ; }'
答案 1 :(得分:0)
表示文件(例如日志)
sed -u "/pattern/ q" YourFile
用于管道
ls -l | sed -u "/pattern/ q"
sed的-u告诉它作为流输入工作
答案 2 :(得分:0)
这是shell的工作监控弹出消息。
nomonitor() {
set +m
"$@"
set -m
}
nomonitor sh -c 'tail -n +0 -f $logfile | { sed "/EOF/ q" && kill $$; }'