特定の拡張子を持つファイルを見つける


67

または拡張子findを持つすべてのファイルを見つけるにはどうすればよいですか?私はオプションを見ましたが、それを使用する方法がわかりません。.xls.csv-regex

回答:


115

なぜこれを単に使用しないのですか:

find -name "*.xls" -o -name "*.csv"

これには正規表現は必要ありません。

絶対に正規表現を使用する場合は、単に使用します

find -regex ".*\.\(xls\|csv\)"

8
私よりも良い答え。+1。
ポールトムブリン

1
括弧の前にバックスラッシュが必要なのはなぜですか?私はそれなしでは機能しないことを知っていますが、それはそうであるようです。

1
デフォルトでemacs正規表現であるためです。-regextypeを使用して変更します。

4
。。念のために:私は思い出してくれるツールが欲しい「\(」「(​​」グループ化のために、どのたい、私はいつもそれを知って、それをしようとする必要はありませんすることができます
ヨアヒム・ザウアー

1
正規表現の例が機能しない
ホストマスター

12
find . \( -name  \*.xls -o -name \*.csv \) -print

-oオプションについて知りませんでした。ありがとう!

1
括弧が必要ですか?見つける 。'(' -name * .xls -o -name * .csv ')'-print

@Adrian-いいえ、ありません。「-print」がデフォルトのアクションではなかったGNU以外の検索で括弧が必要かどうかはわかりません。
ポールトムブリン

5
さて、GNU find(ubuntu 11.04のデフォルト)は、parensと-print ORの両方(parensと-print)で正しく動作します。ただしfind . -name \*.xls -o -name \*.csv -print、.csvに一致するファイルのみを出力します
bbaja42

あなたは正しい、私は括弧が必要です。
ポールトムブリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.