検索出力で「許可拒否」をフィルタリングするにはどうすればよいですか? [コピー]

検索出力で「許可拒否」をフィルタリングするにはどうすればよいですか? [コピー]

私はsed最近それを使い始めました。私が使用する便利な方法は、ログファイル内の重要ではない行を無視することです。

tail -f example.com-access.log | sed '/127.0.0.1/d;/ELB-/d;/408 0 "-" "-"/d;'

ただし、同様に使用しようとすると、find結果は予想とは異なります。次のように、「Permission Denied」を含む行を無視しようとします。

find . -name "openssl" | sed '/Permission denied/d;'

ただし、まだ「許可を拒否しました」というメッセージがたくさん表示されますstdout

編集する

以下の答えで述べたように、「Permission Denied」というメッセージが表示され、stderrNOTに表示されますstdout

ベストアンサー1

問題は、エラー出力が次に印刷されることです。標準エラーそのため、sedコマンドは入力をキャプチャできません。簡単な解決策は、stderrをstdoutにリダイレクトすることです。

find . -name "openssl" 2>&1 | sed '/Permission denied/d;'

おすすめ記事