GNU/Linux >> Linux の 問題 >  >> Linux

テキスト文字列を含まないすべてのファイルを検索するにはどうすればよいですか?

簡潔 コマンドを使用して、テキスト文字列を含まないすべてのファイルを検索できますか?

運が悪かったので(-vを使用してgrepのパラメーターを反転して)これを試しました:

find . -exec grep -v -l shared.php {} ;

誰かがこれでうまくいくと言った:

find . ! -exec grep -l shared.php {} ;

しかし、それは私にはうまくいかないようです。

このページには次の例があります:

find ./logs -size +1c  > t._tmp
while read filename
do
     grep -q "Process Complete" $filename
     if [ $? -ne 0 ] ; then
             echo $filename
     fi
done < t._tmp
rm -f t_tmp

しかし、それは面倒で、まったく簡潔ではありません。

ps:grep -L * これは実行されますが、検索コマンドをgrepと組み合わせて使用​​して、除外されたファイルを作成するにはどうすればよいですか。

pss:また、grep -L *を使用してgrepにサブディレクトリを含める方法もわかりません。 構文ですが、findでの使用方法を知りたいです。 🙂

承認された回答:

find . -type f | xargs grep -H -c 'shared.php' | grep 0$ | cut -d':' -f1    

または

find . -type f -exec grep -H -c 'shared.php' {} ; | grep 0$ | cut -d':' -f1

ここでは、一致する行の数を計算しています(-cを使用) )ファイル内でカウントが0の場合、必要なファイルであるため、出力から最初の列、つまりファイル名を切り取ります。


Linux
  1. Linuxコマンド:テキストファイルのみを「検索」する方法は?

  2. Linuxでテキストを含まないテキストファイルを見つける方法は?

  3. bash のすべてのサブディレクトリにあるすべてのファイルを gzip する方法

  1. Linux で特定のテキストを含むすべてのファイルを見つけるにはどうすればよいですか?

  2. ファイルシステム上のすべてのハードリンクされたファイルを見つけるにはどうすればよいですか?

  3. グループ書き込み可能ではない*すべてのファイルを見つけるにはどうすればよいですか?

  1. Grepコマンドを使用してファイル内のテキストを検索する方法

  2. ファイル内の複数の文字列を見つける方法は??

  3. ファイルに文字列を含む行を取得するには?