<ก่อนหน้านี้ | Contents | ถัดไป>
ช่วงอักขระดั้งเดิม
หากเราต้องการสร้างนิพจน์ทั่วไปที่จะพบว่าทุกไฟล์ในรายการของเราเป็น - เชื่อมด้วยอักษรตัวพิมพ์ใหญ่ เราสามารถทำได้:
[me@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt
[me@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt
ก็แค่ใส่อักษรตัวพิมพ์ใหญ่ทั้ง 26 ตัวในนิพจน์วงเล็บ แต่ความคิดของการพิมพ์ทั้งหมดนั้นน่าหนักใจอย่างยิ่ง ดังนั้นจึงมีอีกวิธีหนึ่ง:
[me@linuxbox ~]$ grep -h '^[AZ]' dirlist*.txt
มาคเดฟ
แผงควบคุม GET
หัวโพสต์ X X11
เอ็กซ์ออร์ก เมคฟล็อปปีส์
NetworkManager NetworkManagerDispatcher
[me@linuxbox ~]$ grep -h '^[AZ]' dirlist*.txt
มาคเดฟ
แผงควบคุม GET
หัวโพสต์ X X11
เอ็กซ์ออร์ก เมคฟล็อปปีส์
NetworkManager NetworkManagerDispatcher
โดยใช้ช่วงอักขระสามตัว เราสามารถย่อ 26 ตัวอักษรได้ ช่วงของตัวอักษรใด ๆ -
ters สามารถแสดงในลักษณะนี้รวมถึงหลายช่วง เช่น นิพจน์นี้ที่ตรงกับชื่อไฟล์ทั้งหมดที่ขึ้นต้นด้วยตัวอักษรและตัวเลข:
[me@linuxbox ~]$ grep -h '^[A-Za-z0-9]' dirlist*.txt
[me@linuxbox ~]$ grep -h '^[A-Za-z0-9]' dirlist*.txt
ในช่วงของอักขระ เราจะเห็นว่าอักขระ dash ได้รับการปฏิบัติเป็นพิเศษ แล้วเราจะรวมอักขระ dash ลงในนิพจน์วงเล็บได้อย่างไร โดยทำให้เป็นอักขระตัวแรกในนิพจน์ พิจารณาสองตัวอย่างนี้:
[me@linuxbox ~]$ grep -h '[AZ]' dirlist*.txt
[me@linuxbox ~]$ grep -h '[AZ]' dirlist*.txt
ซึ่งจะตรงกับทุกชื่อไฟล์ที่มีตัวพิมพ์ใหญ่ ในขณะที่:
[me@linuxbox ~]$ grep -h '[-AZ]' dirlist*.txt
[me@linuxbox ~]$ grep -h '[-AZ]' dirlist*.txt
จะจับคู่ทุกชื่อไฟล์ที่มีขีดกลาง หรือตัวพิมพ์ใหญ่ "A" หรือตัวพิมพ์ใหญ่ "Z"