私は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」というメッセージが表示され、stderr
NOTに表示されますstdout
。
答え1
問題は、エラー出力が次に印刷されることです。標準エラーそのため、sed
コマンドは入力をキャプチャできません。簡単な解決策は、stderrをstdoutにリダイレクトすることです。
find . -name "openssl" 2>&1 | sed '/Permission denied/d;'
答え2
sed
なぜ削除しようとしているのかわかりません。許可が拒否されましたfind
- 使い方を学びたくない場合は出力のメッセージですsed
。
私は単にこれを実行します:
探す。 - 名前 "openssl" 2>/dev/null
ここにリダイレクト中です。標準エラー(ファイル記述子2)に移動します/dev/null
(参照man null
)。つまり、2>/dev/null
単に作成されたすべての内容を破棄します。標準エラー。