עוגן
הקרט (^) וסימן דולר ($) מתייחסים לתווים כאל עוגנים בביטויים רגולריים. המשמעות היא שהם גורמים להתאמה להתרחש רק אם הביטוי הרגולרי נמצא בתחילת השורה (^) או בסוף השורה ($):
[me@linuxbox ~]$ grep -h '^zip' dirlist*.txt
zip zipcloak zipgrep zipinfo zipnote zipsplit
[me@linuxbox ~]$ grep -h 'zip$' dirlist*.txt
gunzip gzip funzip gpg-zip preunzip prezip unzip zip
[me@linuxbox ~]$ grep -h '^zip$' dirlist*.txt
zip
[me@linuxbox ~]$ grep -h '^zip' dirlist*.txt
zip zipcloak zipgrep zipinfo zipnote zipsplit
[me@linuxbox ~]$ grep -h 'zip$' dirlist*.txt
gunzip gzip funzip gpg-zip preunzip prezip unzip zip
[me@linuxbox ~]$ grep -h '^zip$' dirlist*.txt
zip
כאן חיפשנו ברשימת הקבצים את המחרוזת "zip" שנמצאת בתחילת השורה, בסוף השורה, ובשורה שבה היא נמצאת גם בתחילת השורה וגם בסוף (כלומר, בפני עצמה ב- השורה). שימו לב שהביטוי הרגולרי '^$' (התחלה וסוף בלי שום דבר ביניהם) יתאים לשורות ריקות.
עוזר תשבצים
אפילו עם הידע המוגבל שלנו בביטויים רגולריים בשלב זה, אנחנו יכולים לעשות משהו מועיל.
אשתי אוהבת תשבצים ולפעמים היא מבקשת ממני עזרה בשאלה מסוימת. משהו כמו, "מהי מילה של חמש אותיות שהאות השלישית שלה היא 'j' והאות האחרונה היא 'r' שמשמעותה...?" שאלה מהסוג הזה גרמה לי לחשוב.
האם ידעת שמערכת הלינוקס שלך מכילה מילון? זה עושה. תסתכל ב- /usr/share/dict מדריך ואולי תמצא אחד, או כמה. קבצי המילון הממוקמים שם הם רק רשימות ארוכות של מילים, אחת בכל שורה, מסודרות בסדר אלפביתי. במערכת שלי, ה מילים הקובץ מכיל קצת יותר מ-98,500
מילים. כדי למצוא תשובות אפשריות לשאלת התשבץ למעלה, נוכל לעשות זאת:
[me@linuxbox ~]$ grep -i '^..jr$' /usr/share/dict/words
רב סרן
באמצעות ביטוי רגולרי זה, נוכל למצוא את כל המילים בקובץ המילון שלנו באורך חמש אותיות ובעלות "j" במיקום השלישי ו-"r" בעמדה האחרונה.