パターンでファイルを検索しますが、同様のパターンを持つ他のファイルは無視します。

パターンでファイルを検索しますが、同様のパターンを持つ他のファイルは無視します。

サブディレクトリを含むディレクトリがあり、その一部の名前を取得する必要がありますが、無視したい同様のパターンを持つサブディレクトリがあります。

たとえば、サブディレクトリのリストが次のような場合:

Name_One
Not_needed1
Name_Two
Name_Three
Not_needed2
Name_Zero

サブディレクトリName_One、Name_Two、およびName_Threeの名前を変数に保存したいのですが、Name_0は無視したいと思います。

また、プロジェクトごとに名前が変更されますが、常にName_Numberのパターンに従い、Name_Zeroは常に除外する必要がある名前です。

私はMacオペレーティングシステムを使用しています。

答え1

努力する:

find . -type d -name 'Name_*' ! -name 'Name_Zero'

ディレクトリ名の場合Name_[digit]とディレクトリを除くName_0

find . -type d ! -name 'Name_0' -regex './Name_[0-9]*'

サブディレクトリもある場合は、次のコマンドを使用します。

find . -type d ! -name 'Name_0' -regex '.*/Name_[0-9]*'

上記の正規表現は、パターンに一致するディレクトリ名と一致しますName_[zero-or-more-digits]。一致を防ぐためにName_代わりに使用してください'.*/Name_[0-9][0-9]*'

関連情報