私が走るとき
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
リアルタイムの動作が失われます。uniq
追加操作、特に各入力行に追加された日付を変更するために出力をどのように使用できますか?
ベストアンサー1
たぶんバッファリングを変更する必要があるかもしれません。
# buffering totally off
stdbuf -i0 -o0 -e0 command
# buffering per line only
stdbuf -oL -eL command
ここでは私にとって効果的でした。結果は異なる場合があります。うまくいかない場合は、他のコマンドの前に置いてください(bash組み込み機能なので、whileやreadではありません)。
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