すべての.txtファイルで文字列[重複]を検索する

すべての.txtファイルで文字列[重複]を検索する

test123ハードドライブ上のすべてのテキストファイルから文字列を取得する方法はありますか?

答え1

find以下を使用してすべての.txtファイルをgrep取得できます。

$ find / -type f -name '*.txt' -exec grep 'test123' {} +

どこ:

  • /すべてのサーバーで検索してください。
  • -type fディレクトリは検索せずにファイルのみを検索します。
  • -name '*.txt'すべての.txtファイルを検索
  • -exec grep 'test123'test123見つかったすべてのファイルを検索
  • {}単一の引数だけでなく、コマンド引数に現れるたびに現在のファイル名に置き換えられます。
  • +実行時間が大幅に短縮されます(実行前にパラメータを連結するため)。

答え2

「すべてのテキストファイル」は、.txt で終わるすべてのファイルを意味すると仮定します。

find / -type f -name '*.txt' -exec grep -i 'test123' {} \;

または

find / -type f -name '*.txt' -exec grep -i 'test123' {} +

答え3

find / -type f -exec grep -I test123 {} +

+代わりに使用するバージョンははるかに\;高速で-Iバイナリを無視します。あるいは、単に再帰的なgrepを使用してください。

grep -Ir test123 /

2>/dev/null「Permission Denied」行がたくさんあるため、この操作も実行できます。

答え4

正しい方向を知らせる内容:

find / -type f -name *.txtハードドライブが1つしかないとし、すべての.txtファイルを探します。次に、grepそのファイル内で検索を使用します。

関連情報