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?


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:]]*"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.