当我跑步时
for i in {1..2000}; do sleep 0.1 && echo $(netstat -s | grep -i syns); done | uniq
表达式$(netstat -s | grep -i syns)
更改时,我可以实时查看。
但是当我想修改管道的输出时:
for i in {1..2000}; do sleep 0.1 && echo $(netstat -s | grep -i syns); done | uniq | while read line; do echo $(date) $line; done
实时行为会丢失。如何使用ofuniq
的输出进行进一步的操作,特别是将日期附加到每个输入行更改中?
也许您只需要更改缓冲:
# buffering totally off
stdbuf -i0 -o0 -e0 command
# buffering per line only
stdbuf -oL -eL command
在这里对我有用...您的结果可能会有所不同。如果它不起作用,请尝试将其放在不同的命令之前(不宜同时阅读,因为它们是bash内置函数)。
for i in {1..2000}; do
sleep 0.1 && echo $(netstat -s | grep -i syns)
done \
| stdbuf -oL -eL uniq | while read line; do
echo $(date) $line
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句