名前が大文字で始まるファイルを見つける


14

名前が大文字で始まるすべてのファイルを検索しようとしています。次のコマンドを使用してみました。

find . -type f -regex '.*\/[A-Z][^/]*'

小文字のみのパスを検索しています。次の作品:

find . -type f -regex '.*\/[ABCDEFGHIJKLMNOPQRSTUVWXYZ][^/]*'

同様に:

find . -type f | grep '.*\/[A-Z][^/]*$'

のすべての異なるオプションを試してみましたregextypeが、結果は同じです。

なぜfind小文字を含めるの[A-Z]ですか?私はそのための正規表現だと思った[a-zA-Z]。に大文字のみの範囲を指定する方法はありますfindか?


5
どうLC_ALL=C find ...
mikeserv 14年

動作します。答えで理由を説明できますか?
カールビーレフェルト

3
私は試すことができましたが、それからあなたはこれを逃すかもしれません
mikeserv 14年

1
スラッシュ(\/)をエスケープしているのはなぜですか?また、どのような検索結果を使用していますfind --versionか()?
クリスティアンシウピトゥ14年

1
エスケープ/は、区切り文字として使用する場合にのみ必要です(例:)s/foo\/bar/foobar/。(ただし、多くの場合、他の区切り文字を使用できます:s#foo/bar#foobar#。)
deltab 14年

回答:


35

を使用する必要はありません-regex-name代わりに使用できます。

find . -type f -name "[[:upper:]]*"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.