2017-04-05 18 views
0

私はその中のサブディレクトリとファイルの多くが付いているディレクトリ内の指定された文字列を持ついくつかのファイルを見つけようとしている、最も適切な方法

私は、ターゲットファイルのために一致する正規表現/グロブ表現を知っていて、他のコマンドから中間ディレクトリの名前。例ディレクトリ一覧表示コマンドの出力:

1234 
5321 
4546 
2456 

は、私は、findとgrepを使用してそれをやろうとしているが、私は、xargsのを使用して見つけるために、適切にディレクトリ名を渡すことはできません。最終的なコマンドは次のとおりです。

commandOutputDirs | xargs -d\n find /path/to/search/*/{} -type f -name "*fileName*" 

しかし、私はエラー、次の取得=

私が使用して、エコーの代わり

/パス/に/検索/ */{}

を探してみてください find: paths must precede expression: 1234

と評価さ

/path/to/search/path 1234

同じ効果を得るには、これらの引数を別の方法で渡す必要がありますか?それは、コマンドラインの出力は、次のようにしてください場合

while read line; do find /path/$line -type f -name "*filename* < pattern.txt 

+0

あなたが実際にやろうとしていることを理解するのは難しいです!内容の中に文字列を含むファイルを探していますか?または名前に指定された文字列が含まれているファイルを探していますか?またはパスに指定された文字列が含まれているファイルを探していますか?そして、あなたがそれらのファイルを見つけたら、それらのファイルで何をしたいですか? –

+0

不明な点をおかけして申し訳ありません。指定された文字列が特定の名前のファイルのいくつかのディレクトリに存在するかどうかを調べる必要があります(ログファイルにエラーがあります)。 ** commandOutputDirs **からファイルを探すサブディレクトリの名前を得ることができます。私はまた、後に見つける文字列が存在するファイルの名前を知っています。私は、ファイルのリストを取得し、その文字列を検索するgrepしたいです。 – mtraton

+0

このように? find/path/to/hugeDir/subDir1/path/to/hugeDir/subDir2 .../path/to// find/tmp/etc// some/Where/Else -type f ... –

答えて

0

はあなたがこのように行うことができ

usr 
etc 
var 

を含むファイルpattern.txtを持っていると言う

commandLineOutput | while read line; do find /path/$line -type f -name "*filename* 
関連する問題