パターンに一致するファイルを表示しないためにgrepを使用しますか?


0

パターンと一致しないすべてのものを除外するために、パイプでgrepを使用することに非常に精通しています。しかし、grepを使用して、パターンに一致するすべてのものを除外できますか?私はこれがうまくいくと思った、

-v

以下のようなオプション:

/ media -name "somenamehere"を見つけます| grep -v "許可が拒否されました"

しかし、これは機能していません。なぜそうではなく、私が代わりに何をすべきか考えていますか?

回答:


1

" Permission denied" from findstdoutではなくstderrに出力され、パーツはstderrに表示されるものには影響しません。これらを除外する方法は2つあります。grep

stderrのリダイレクト先 /dev/null

find /media -name "somenamehere" 2>/dev/null

stderrをstdoutにリダイレクトする

find /media -name "somenamehere" 2>&1 | grep -v "Permission denied"

入出力リダイレクトの追加リソース


ありがとうございました!!!完全に理にかなっていますが、私はそれを自分で知ることはなかったでしょう。上記の#1は美しく機能し、2つの方が簡単に思えますが、確認することが重要なその他のエラー(「Permission denied」ではない)がある場合は#2の方が安全だと思いますか?例はありますか?私は通常、ファイル(CFカード上の写真など)がまだバックアップディレクトリにコピーされているかどうかを確認しようとしています。しかし、これらのエラーが役立つ場合がありますか?再びありがとう!
混乱

@confused:あなたは、代わりに、後で確認するためにファイルにstderrのエラーを救うことができる2>stderr.log代わりに2>/dev/null。その後、開いstderr.logて見逃しているものを確認できます。
デルティック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.