Adın büyük harfle başladığı bir dosya bulun


14

Adı büyük harfle başlayan tüm dosyaları bulmaya çalışıyorum. Aşağıdaki komutu kullanarak denedim:

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

Sadece küçük harfli yollar buluyor. Aşağıdaki işler:

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

Olduğu gibi:

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

regextypeAynı sonuçla tüm farklı seçenekleri denedim .

Neden findküçük harfler içeriyor [A-Z]? Bunun için normal ifade olduğunu düşündüm [a-zA-Z]. Yalnızca büyük harf aralığını belirtmenin bir yolu var mı find?


5
Ne olmuş LC_ALL=C find ...?
mikeserv

Bu çalışır. Neden bir cevapta açıklayabilir misiniz?
Karl Bielefeldt

3
Deneyebilirim, ama sonra bunu kaçırabilirsin .
mikeserv

1
Neden eğik çizgiden ( \/) kaçıyorsunuz ? Ayrıca ( ) ne buluyorsunuzfind --version ?
Cristian Ciupitu

1
Çıkış /, yalnızca sınırlayıcı olarak kullandığınızda gereklidir, örn s/foo\/bar/foobar/. (Ama genellikle başka bir sınırlayıcı kullanabilirsiniz s#foo/bar#foobar#
:.

Yanıtlar:


35

Kullanmanıza gerek yok -regex. Bunun -nameyerine kullanabilirsiniz .

find . -type f -name "[[:upper:]]*"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.