たとえば、私がやるとき
sudo tcpdump | grep -E '.dev:8888|ads' | grep -v 'adsl'
ads.google.com
何らかの理由ですべての出力が抑制されます。たとえば、アクセスすると何も表示されず、削除するとデフォルトのgrep -v
コマンドが機能します。
ただし、次の内容でファイルを作成しようとすると:
test
test2
grep -E 'test|test2' | grep -v 'test2'
私が望む結果を得ますか? (test
)。更新を継続する際の違いは何grep
ですか。複数のオプションを使用して出力を変更するにはどうすればよいですか?
答え1
行バッファリングに問題がある可能性があります。次のように、tcpdump
中間grep
コマンドに出力をラインバッファリングするように指示します。
sudo tcpdump -l | grep --line-buffered -E '.dev:8888|ads' | grep -v 'adsl'
また、見ることができますパイプラインでバッファリングをオフにするこれらのコマンドオプションが利用できない場合の一般的な回避策です。