Standart dosya adı globbing desen eşleşmesi için bir basamak olduğunu [0-9]
. Bu, tek bir rakamla eşleşir:
cat file[0-9].txt
Bunlardan yalnızca ikisini seçmek için:
cat file[25].txt
9'dan büyük sayılar için, küme ayracı genişletmesi yararlı olacaktır (ancak globbing desenleri ve küme ayracı genişletmeleri arasındaki fark için aşağıdaki nota bakın):
cat file{25..60}.txt
Yine, küme ayracı genişletme bireysel sayılara da izin verir:
cat file{12,45,900,xyz}.txt
(yukarıdaki örnekte, küme ayracı genişletmesinin aritmetik bir döngü içermediğini, ancak sağlanan dizelere göre yalnızca adlar oluşturduğunu unutmayın).
Yılında bash
, ile extglob
kabuk seçeneği (etkin shopt -s extglob
), şu olacak ayrıca iş:
cat file@(12|45|490|foo).txt
@(...)
Desen dahil herhangi birini maç olacak |
-delimited desenleri.
Globbing olarak desen arasındaki fark [...]
ve @(...)
ve bağ açılımları, bir bağ genişleme olmasıdır komut satırında oluşturulan ve aslında geçerli dizinde varolan herhangi isimleri aynı olmayabilir. Bir dosya adı globbing kalıbı adlarla eşleşir, ancak kabuk tüm olası adlar yoksa şikayet etmez. Eğer hiçbir eşleştirme adından var da sürece, desen yorumlanmaksızın olmak kalacaktır nullglob
kabuk seçeneği bu durumda Model çıkarıldığında,.
Misal:
touch file1
ls file[0-9]
Burada, yalnızca dosya listesi file1
gösterilecektir.
İle ls file{0..9}
, ls
bulgu şikayet olmaz file0
, file2
vb
Aşağıdaki örnekte, ilk komut yalnızca verilen kalıpla eşleşen mevcut adlara dokunurken, ikinci satır zaten var olmayan dosyaları oluşturur:
touch file[0-9]
touch file{0..9}
file45.txt
. Köşeli ayraç ifadesi[...]
, normal ifadede olduğu gibi çalışır, ancak "içinde değil" demek!
yerine kullanılır^
. Bir[...]
desen her zaman tek bir karakterle eşleşir.