Pola globbing nama file standar yang cocok dengan digit adalah [0-9]
. Ini cocok dengan satu digit:
cat file[0-9].txt
Untuk memilih hanya dua di antaranya:
cat file[25].txt
Untuk angka yang lebih besar dari 9, ekspansi brace akan berguna (tetapi lihat catatan di bawah untuk perbedaan antara pola globbing dan ekspansi brace):
cat file{25..60}.txt
Sekali lagi, ekspansi brace memungkinkan untuk nomor individual juga:
cat file{12,45,900,xyz}.txt
(perhatikan bahwa dalam contoh di atas, ekspansi brace tidak melibatkan loop aritmatika, tetapi hanya menghasilkan nama berdasarkan string yang disediakan).
Di bash
, dengan extglob
opsi shell diaktifkan ( shopt -s extglob
), yang berikut ini juga akan berfungsi:
cat file@(12|45|490|foo).txt
The @(...)
Pola akan cocok salah satu dari termasuk |
pola -delimited.
Perbedaan antara pola globbing sebagai [...]
dan @(...)
dan ekspansi brace, adalah bahwa ekspansi brace dihasilkan pada baris perintah dan mungkin tidak benar-benar cocok dengan nama yang ada di direktori saat ini. Pola globbing nama file akan cocok dengan nama, tetapi shell tidak akan mengeluh jika tidak semua nama ada. Jika tidak ada nama yang cocok, polanya akan tetap tidak berkembang, kecuali jika nullglob
opsi shell diatur, dalam hal ini polanya dihilangkan.
Contoh:
touch file1
ls file[0-9]
Di sini, hanya daftar file yang file1
akan ditampilkan.
Dengan ls file{0..9}
, ls
akan mengeluh tentang tidak menemukan file0
, file2
dll.
Dalam contoh berikut, perintah pertama hanya akan menyentuh nama yang sudah ada yang cocok dengan pola yang diberikan, sedangkan baris kedua akan membuat file yang belum ada:
touch file[0-9]
touch file{0..9}
file45.txt
. Ekspresi braket[...]
bekerja seperti dalam ekspresi reguler tetapi digunakan!
sebagai ganti^
untuk mengatakan "tidak dalam". Sebuah[...]
pola akan selalu cocok dengan satu karakter.