名前+1900-1990+の名前を含むフォルダを探す

名前+1900-1990+の名前を含むフォルダを探す

ex.を含む多くのフォルダを検索しようとしています。Events.1900-1990.events。私はフォルダを前にしたくありません。を使用すると、Events.2004フォルダにのみ1900年 - > 1990年の年が含まれます。

名前はEvent誕生日、戦争など何でも構いません。

私は次のことを試しました:

find . -type d -regex '*/[a-z][A-Z]/19+\[0-9]*' -print

しかし、何も見つかりませんでした。

ベストアンサー1

find . -type d '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')'

名前に1900から1990までの数字を含む現在のディレクトリ内またはその下のすべてのディレクトリを見つけます。テストはファイル名に基づいて2つの部分に分けられ、最初のテストは1900から1989の数字で、2番目のテストは1990です。

この場合、正規表現を使用する必要はありません。上記のパターンはファイル名のワイルドカードパターンです。

ファイル名サフィックスのテストを追加するには、次の.events2つの方法で実行できます。

find . -type d -name '*.events' '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')' 

find . -type d '(' -name '*19[0-8][0-9]*.events' -o -name '*1990*.events' ')'

*あなたのコマンドは正規表現の先頭のaと一致する文字を見つけません*[文字に一致するように式の文字の1つをエスケープすることもできます[

おすすめ記事