tail -f,multi sed

tail -f,multi sed

我可以

tail -vf -c5 thefile    \
    | cat -n            \   
    | sed -E 's/a/b/g'  \
    ;

但以下内容没有输出。

tail -vf -c5 thefile    \
    | cat -n            \   
    | sed -E 's/a/b/g'  \
    | sed -E 's/f/F/g'  \
    ;

为什么?

答案1

sed正在缓冲其输出。使用该-u选项(如果存在,例如 GNU sed)更积极地刷新缓冲区。

您还可以使用stdbuf修改缓冲行为的工具:

tail -vf -c5  thefile | cat -n | stdbuf -oL sed -E 's/a/b/g' | sed -E 's/f/F/g'

相关内容