טווחי תווים מסורתיים
אם נרצה לבנות ביטוי רגולרי שימצא כל קובץ ברשימות שלנו מתחיל באות גדולה, נוכל לעשות זאת:
[me@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' רשימת dir*.txt
[me@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' רשימת dir*.txt
זה רק עניין של לשים את כל 26 האותיות הגדולות בביטוי סוגריים. אבל הרעיון של כל ההקלדה הזו מטריד מאוד, אז יש דרך אחרת:
[me@linuxbox ~]$ grep -h '^[AZ]' dirlist*.txt
MAKEDEV
ControlPanel GET
עמוד ראש X X11
Xorg MAKEFLOPPIES
NetworkManager NetworkManagerDispatcher
[me@linuxbox ~]$ grep -h '^[AZ]' dirlist*.txt
MAKEDEV
ControlPanel GET
עמוד ראש X X11
Xorg MAKEFLOPPIES
NetworkManager NetworkManagerDispatcher
על ידי שימוש בטווח של שלושה תווים, נוכל לקצר את 26 האותיות. כל טווח של אופי -
ניתן לבטא ters בצורה זו כולל טווחים מרובים, כגון ביטוי זה שתואם את כל שמות הקבצים המתחילים באותיות ומספרים:
[me@linuxbox ~]$ grep -h '^[A-Za-z0-9]' רשימה*.txt
[me@linuxbox ~]$ grep -h '^[A-Za-z0-9]' רשימה*.txt
בטווחי תווים, אנו רואים שתו המקף מטופל במיוחד, אז איך בעצם נכלול תו מקף בביטוי סוגריים? על ידי הפיכתו לדמות הראשונה בביטוי. שקול את שתי הדוגמאות הללו:
[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".