Temukan file di mana nama dimulai dengan huruf kapital

14

Saya mencoba menemukan semua file yang namanya dimulai dengan huruf kapital. Saya sudah mencoba menggunakan perintah berikut:

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

Ini menemukan jalur dengan hanya huruf kecil. Karya-karya berikut:

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

Seperti halnya:

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

Saya sudah mencoba semua opsi yang berbeda untuk regextype, dengan hasil yang sama.

Mengapa findmenyertakan huruf kecil [A-Z]? Saya pikir regex untuk itu [a-zA-Z]. Apakah ada cara untuk menentukan rentang huruf besar saja find?

Karl Bielefeldt
sumber
5
Bagaimana dengan LC_ALL=C find ...?
mikeserv
Itu bekerja. Bisakah Anda menjelaskan mengapa dalam sebuah jawaban?
Karl Bielefeldt
3
Saya bisa mencoba, tetapi Anda mungkin akan melewatkan ini .
mikeserv
1
Mengapa Anda lolos dari tebas ( \/)? Juga apa yang menemukan yang Anda gunakan ( find --version)?
Cristian Ciupitu
1
Melarikan diri /hanya diperlukan saat Anda menggunakannya sebagai pembatas, misalnya dalam s/foo\/bar/foobar/. (Tetapi seringkali Anda dapat menggunakan pembatas lain:. s#foo/bar#foobar#)
deltab

Jawaban:

35

Anda tidak perlu menggunakan -regex. Anda bisa menggunakannya -name.

find . -type f -name "[[:upper:]]*"
Costas
sumber