とディレクトリ内のすべてのファイル内の文字列のために、私はこのような構造を持つディレクトリ内のCSVファイルを持っているのgrep:特定の名前
20090120/
20090121/
20090122/
etc...
を、私はこれらのディレクトリ内のCSVファイルのすべてで、特定の文字列をgrepしたいのですが、 2009年1月のみ200901 */*。csv
これを行うためのbashコマンドライン引数はありますか?
とディレクトリ内のすべてのファイル内の文字列のために、私はこのような構造を持つディレクトリ内のCSVファイルを持っているのgrep:特定の名前
20090120/
20090121/
20090122/
etc...
を、私はこれらのディレクトリ内のCSVファイルのすべてで、特定の文字列をgrepしたいのですが、 2009年1月のみ200901 */*。csv
これを行うためのbashコマンドライン引数はありますか?
はい。 grep "a certain string" 200901*/*.csv
。
次のようなものが必要です:(検索文字列がコースのNEEDLE
であると仮定すると - ちょうどあなたがが実際に探しているものは何でもそれを変更)
grep NEEDLE 200901*/*.csv
を。
bash
シェルは、多レベルのパスとファイル名を拡張することができます。
もちろん、1つのディレクトリがダウンしたCSVファイルのみに限定されます。サブツリー全体を検索する場合は、少し複雑な(適応可能な)find
コマンドを使用する必要があります。
けれども、あなたは深さに制限を設定することができますと仮定して、あなたは離れて(3用のレベル)のようなもので得ることができる:
grep NEEDLE 200901*/*.csv 200901*/*/*.csv 200901*/*/*/*.csv
これを試してみてください:
grep -lr "Pattern" 200901*/*.csv
お試しください。 と特定のファイル名パターンを検索し、grepパターンを検索する:
find . -name "*.csv" -print -exec grep -n "NEEDLE" {} \; | grep -B1 "NEEDLE"
また、[globstarを設定して**](http://wiki.bash-hackers.org/internals/shell_options#globstar) –