我可以
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'