パターンに一致するディレクトリで、拡張子が.csvのファイルを見つけます。

パターンに一致するディレクトリで、拡張子が.csvのファイルを見つけます。

サブフォルダが多いフォルダがあります。

ルートフォルダ名はallCSVで、サブフォルダ名は次のとおりです。a_date(s), b_date(s), c_date(s) ...

私はa_date(s)にあり、.で終わることを望みます.csv

私は以前試しました:

find ../ -name '[a_]*' -a -name '*[.csv]'

ただし、次に終わるすべてのファイルが表示されます。.csv

ベストアンサー1

このパターンは、または文字で始まる名前[a_]*と一致します。このパターンは、文字の1つで終わる名前と一致します。で始まる名前を一致させるには、を使用します。で終わる名前を一致させるには。a_*[.csv].csva_-name 'a_*'.csv-name '*.csv'

find ../ -name 'a_*' -a -name '*.csv'または、find ../ -name 'a_*.csv'名前が.で始まり、a_終わるファイルと同じように一致します.csv。これは、ファイルに到達するために通過したディレクトリをフィルタリングしません。

ファイルが親ディレクトリのサブディレクトリ(たとえば)にある場合は../a_foo/wibble.csv必要ありませんfind。このfindコマンドは、ディレクトリツリーを繰り返し検索する場合にのみ役立ちます。echoまたは、次のものを使用できますls

ls ../a_*/*.csv

a_*ファイルがディレクトリの下のサブディレクトリにある場合(たとえば、または../a_foo/wibble.csv除く../a_foo/bar/wibble.csv)、その../qux/a_foo/wibble.csvファイルを呼び出してディレクトリをfind検索するように指示します。a_*

find ../a_* -name '*.csv'

または、次のものをfind使用できます。**サブディレクトリの再帰検索のためのワイルドカードです。 ksh93では、まずこのモードを有効にする必要がありますset -o globstar。 Bashでは、まずこのモードを有効にする必要がありますshopt -s globstar。 zshでは、このモードはデフォルトで有効になっています。他のシェル(例:通常のsh)は**

ls ../a_*/**/*.csv

a_*ディレクトリ自体が親ディレクトリの下の任意の深さに配置できる場合、find -pathまたは次のいずれかを使用できます**

find .. -path '*/a_*/*.csv'
ls ../**/a_*/**/*.csv

おすすめ記事