2016-03-24 6 views
1

これは私のディレクトリ構造です。"find"コマンドを使用してディレクトリ内の特定の文字列を含むファイルを見つけるには?

dirOut 
├── dirIn1 
│   ├── temp1 
│   └── temp2 
├── dirIn2 
└── dirIn3 
    ├── temp1 
    ├── temp2 
    ├── temp3 
    └── temp4 

dirはディレクトリでtempはファイルです。
特定の文字列「Hello」を含むファイルを検索します。
コマンド「find」を使用して検索するにはどうすればよいですか。

答えて

3

を使用してください。findではなく、コンテンツベースのファイルがあります。

grep -lr Hello . 
  • -l:通常のgrepプリントマッチングライン、-lオプションで、それだけでマッチしたファイル名を印刷します。
  • -r:ディレクトリの下のファイルを再帰的に検索します。
+0

ありがとうございます。 –

1
find dirOut -type f -exec grep -l Hello {} + 

-lオプションは、それはむしろ、一致するすべての行を示すよりも、一致を見つけた場合はファイル名だけを一覧表示するgrepに指示します。

-Rのオプションをgrepに設定して、findではなく、ディレクトリを再帰的に検索することもできます。

grep -R -l Hello dirOut 
0
find . -type f -name \* -exec grep -l "hello" {} \; 

dirOutでいる間、このコマンドを実行します。

関連する問題