2016-08-20 2 views
-1

100個のテキストファイルを含むディレクトリがあります。私は次のようにディレクトリ内の指定されたテキストを検索するためにはgrepを使用:どのファイルがgrep結果を保持しているかを知るには?

cat *.txt | grep Ya_Mahdi 

とgrepはYa_Mahdiを示しています。

どのファイルにテキストが保存されているかを知る必要があります。出来ますか?

+0

は何 '男はあなたを教えてgrep'のでしょうか? –

答えて

4

はちょうどcatを取り除くとgrepにファイルのリストを提供します:

grep Ya_Mahdi *.txt 

これは、一般的にそのフォルダ内.txtファイルの数に応じて、仕事だろうが、grepのための引数リストがあまりにも得る可能性があります大。

あなたは防弾ソリューションのfindを使用することができます。

find --maxdepth 1 -name '*.txt' -exec grep -H Ya_Mahdi {} + 
+0

それはファイル名を表示しません。 – hek2mgl

+0

@ hek2mgl OPが使用しているgrepのバージョンによって異なります。 Mac OS Xを実行していて、複数のファイル名が入力として提供されている場合、組み込みのgrep(grep(BSD grep)2.5.1-FreeBSD)はファイル名を表示します。あなたが* single *ファイルだけを入力として提供する場合は、そうでない場合があります。 * .txtに一致する複数のファイルでテストしてもよろしいですか? –

+0

私はそれがgrepのバージョンに依存しないと確信しています。問題は 'GREP_OPTIONS'変数がセットされていて、' -H'を含んでいるか、 'grep'がシェルのエイリアスであることです。 (後者の場合は/ bin/grepを試してください) – hek2mgl

関連する問題