รูปแบบชื่อแฟ้ม globbing มาตรฐานเพื่อให้ตรงกับหลัก[0-9]
คือ ตรงกับหลักเดียว:
cat file[0-9].txt
ในการเลือกเพียงสองข้อต่อไปนี้:
cat file[25].txt
สำหรับตัวเลขที่มีขนาดใหญ่กว่า 9 การขยายรั้งจะมีประโยชน์ (แต่ดูหมายเหตุด้านล่างสำหรับความแตกต่างระหว่างรูปแบบการวนรอบและการขยายรั้ง):
cat file{25..60}.txt
อีกครั้งการขยายรั้งช่วยให้ตัวเลขแต่ละตัวเช่นกัน:
cat file{12,45,900,xyz}.txt
(โปรดทราบว่าในตัวอย่างข้างต้นการขยายรั้งไม่เกี่ยวข้องกับการวนรอบทางคณิตศาสตร์ แต่เพียงสร้างชื่อตามสตริงที่ให้ไว้)
ในbash
เมื่อextglob
เปิดใช้งานตัวเลือกเชลล์ ( shopt -s extglob
) ตัวเลือกต่อไปนี้จะใช้งานได้:
cat file@(12|45|490|foo).txt
@(...)
รูปแบบจะตรงกับหนึ่งรวมใด ๆ|
รูปแบบ -delimited
ความแตกต่างระหว่างรูปแบบการวนเป็น[...]
และ@(...)
และการขยายรั้งคือว่าการขยายรั้งถูกสร้างขึ้นในบรรทัดคำสั่งและอาจไม่ตรงกับชื่อที่มีอยู่ในไดเรกทอรีปัจจุบัน รูปแบบชื่อไฟล์ globbing จะตรงกับชื่อ แต่เชลล์จะไม่บ่นหากไม่มีชื่อที่เป็นไปได้ทั้งหมด หากไม่มีชื่อที่ตรงกันรูปแบบจะยังคงไม่ขยายออกเว้นแต่ว่าจะมีการnullglob
ตั้งค่าตัวเลือกของเชลล์ซึ่งในกรณีนี้รูปแบบจะถูกลบออก
ตัวอย่าง:
touch file1
ls file[0-9]
ที่นี่เฉพาะรายชื่อไฟล์ที่file1
จะแสดง
ด้วยls file{0..9}
, ls
จะบ่นเกี่ยวกับการไม่ได้หาfile0
, file2
ฯลฯ
ในตัวอย่างต่อไปนี้คำสั่งแรกจะสัมผัสเฉพาะชื่อที่มีอยู่ที่ตรงกับรูปแบบที่กำหนดในขณะที่บรรทัดที่สองจะสร้างไฟล์ที่ไม่มีอยู่:
touch file[0-9]
touch file{0..9}
file45.txt
แต่ที่ไม่ได้รูปแบบที่จะตรงเช่น การแสดงออกวงเล็บจะ[...]
ทำงานเช่นเดียวกับการแสดงออกปกติ แต่ใช้!
แทน^
การพูดว่า "ไม่ได้อยู่ใน"[...]
รูปแบบที่มักจะตรงกับตัวอักษรตัวเดียว