find を使用して複数のパターンのいずれかに一致するファイルを検索する 質問する

find を使用して複数のパターンのいずれかに一致するファイルを検索する 質問する

コマンドを使用して、ディレクトリ内のすべての python ファイルと html ファイルのリストを取得しようとしていましたfind Documents -name "*.{py,html}"

その後、man ページが登場しました。

パターン内の中括弧 ('{}') は特別なものとはみなされません (つまり、find . -name 'foo{1,2}' は、ファイル foo1 や foo2 ではなく、foo{1,2} という名前のファイルに一致します)。

これはパイプチェーンの一部なので、実行時に一致する拡張子を指定できるようにしたいと思います (ハードコーディングなし)。 find でそれができない場合は、perl ワンライナー (または同様のもの) で十分です。

編集:最終的に私が思いついた答えには、くだらない内容がいろいろ含まれていて、少し長かったので、答え私が最初に解決しようとしていた問題です。もっと良い解決策があれば、遠慮なく修正してください。

ベストアンサー1

-o「または」を意味する を使用します。

find Documents \( -name "*.py" -o -name "*.html" \)

そのコマンドラインをプログラムで構築する必要がありますが、これはそれほど簡単ではありません。

bash (または Windows 上の Cygwin) を使用していますか? 使用している場合は、次の操作を実行できるはずです:

ls **/*.py **/*.html

プログラムで構築する方が簡単かもしれません。

おすすめ記事