2016-05-06 6 views
0

私はUNIXのディレクトリパスを持っています。このディレクトリには5つのサブフォルダが含まれています。 各サブフォルダの下に、私は10のファイルを持っています(似ています)。このサブフォルダは、各サイトまたは場所ファイルを意味します。Linux環境で文字列を検索するコマンド

それぞれの5つのサブフォルダにある特定の番号を検索したいと考えています。私は現在、grepコマンドを使用しています

*ではなく

はgrep -l検索文字列のすべてのサブフォルダで、サブフォルダ内の文字列を検索することが有用です。 これはサブフォルダに対して実行されています。 1つのコマンドを使って5つのサブフォルダをすべて検索したい。

+2

をあなたは 'grepの-l何でも*/*'や 'grepの.'どんな-rlが、あなた」を探しているかもしれません私はあなたが欲しいものを理解しているか分からないほど曖昧です。 – zwol

+0

私の検索文字列が404 566 7898なら、私のコマンドはgrep -lのように見えます "404 566 7898" – user1468031

+0

zwolが提案しているように、 'grep -rl" 404 566 7898 "'または 'grep -l" 404 566 7898 "*/*' – John1024

答えて

1

using one single command - なぜですか? UNIXは、最良の結果を得るために適切なコマンドの組み合わせを使用するという理念のもとに構築されています。なぜ何か違うことをしたいのですか?

この場合、へのUNIXツールはファイルを見つけることがloballyファイル内Regular E XPRESSIONを検索GfindおよびUNIXツールを命名し、PさRINT結果があります例えばgrepので、あなたの問題のための適切なアプローチがfindgrepの組み合わせである、:

find . -type f -print0 | xargs -0 grep -l regexp 
+1

はい、これは私が単一のディレクトリの下の複数のフォルダの文字列を見つけるために使用したコマンドです。ありがとう – user1468031

1
grep -r 

あなたは

男のgrep
/何をしたいです - 再帰

-r, --recursive 
Read all files under each directory, recursively, following 
symbolic links only if they are on the command line. 
Note that if no file operand is given, grep searches the working directory. 
This is equivalent to the -d recurse option. 
関連する問題