次の構造のディレクトリに csv ファイルがあります。
20090120/
20090121/
20090122/
etc...
これらのディレクトリ内のすべてのcsvファイルで特定の文字列をgrepしたいのですが、200901 * / * .csvなど、2009年1月のみです
これを行うことができるbashコマンドライン引数はありますか?
はい。grep "a certain string" 200901*/*.csv
.
次のようなものが必要です:
grep NEEDLE 200901*/*.csv
NEEDLE
(検索文字列が当然だと仮定すると、実際に探しているものに変更するだけです)。
シェルは、bash
複数レベルのパスとファイル名を展開することができます。
もちろん、これは 1 つ下のディレクトリにある CSV ファイルに限定されます。サブツリー全体を検索したい場合は、少し複雑な (そして適応性のある)find
コマンドを使用する必要があります。
ただし、深さに制限を設定できると仮定すると、次のようなものでうまくいく可能性があります (3 レベルの場合):
grep NEEDLE 200901*/*.csv 200901*/*/*.csv 200901*/*/*/*.csv
これを試して :
grep -lr "Pattern" 200901*/*.csv