私のコンピュータはCentOS 7.1を使用しています。にあるすべてのファイルを検索しようとしています/var/spool/postfix
。
私がこれを達成したい方法は次のとおりです。
$ egrep -lir --include="*.*" "[email protected]" ./ > /root/results.txt
ただし、検索は常に空(results.txt
生成されたが内部には何もありません)を返します。@
問題がある可能性があると考えて、--include
検索範囲を次のように減らしました。
$ egrep -lir "somedomain.com" ./ > /root/results.txt
しかし、これも何の結果も得られませんでした。私が探している文字列を含むファイルが少なくとも1つ以上あると確信しているので、*.txtに少なくとも1つの結果が必要です。
を使用して、目的の文字列を含むファイルをどのように見つけることができますかegrep
?これが不可能な場合は、別の検索方法を使用できます。
なぜこの/背景が必要なのですか?
誤った電子メールアカウントとパスワードの選択により、コンピュータは約50万のスパムメッセージを送信するために使用され、スパムメッセージは迅速に返送され、ハードドライブがいっぱいになり始めました。問題のあるメールアカウントは削除され、端末はオフラインになりました。今/var/spool/postfix/defer
、入って来るすべてのEメールの中から特定のEメールを見つけようとしています/var/spool/postfix/deferred
。
バリアントが利用できるようですが、フィルタ処理された結果を返す他のコマンドを使用してこれを実行したいとmailq > /root/results.txt
思います。egrep, grep, find
答え1
GNUはgrep
スイッチを使用して正規表現検索を実行できるため、-E
使用する必要はありませんegrep
。
私は次のことをします:
$ grep -rilE '[email protected]' . | tee /root/results.txt
端末で結果を見たくない場合は、| tee
aに変更できます。>