OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

לסירוגין

הראשון מבין תכונות הביטוי הרגולרי המורחבות בהן נדון נקרא הִתחַלְפוּת, שהוא המתקן שמאפשר להתרחש התאמה מבין קבוצת ביטויים. בדיוק כפי שביטוי סוגריים מאפשר לתו בודד להתאים מקבוצה של תווים שצוינו, החלפה מאפשרת התאמות מקבוצה של מחרוזות או ביטויים רגולריים אחרים.

כדי להדגים, נשתמש grep בשיתוף עם הד. ראשית, בואו ננסה התאמת מיתר ישנה ופשוטה:



[me@linuxbox ~]$ הד "AAA" | grep AAA

AAA

[me@linuxbox ~]$ הד "BBB" | grep AAA

[me@linuxbox ~]$

[me@linuxbox ~]$ הד "AAA" | grep AAA

AAA

[me@linuxbox ~]$ הד "BBB" | grep AAA

[me@linuxbox ~]$


דוגמה די פשוטה, שבה אנו מזרימים את הפלט של הד אל תוך grep ולראות את התוצאות. כאשר מתרחשת התאמה, אנו רואים אותה מודפסת; כאשר לא מתרחשת התאמה, איננו רואים תוצאות.

כעת נוסיף חילופין, המסומן על ידי המטא-תווים של פס אנכי:



[me@linuxbox ~]$ הד "AAA" | grep -E 'AAA|BBB'

AAA

[me@linuxbox ~]$ הד "BBB" | grep -E 'AAA|BBB'

דווח

[me@linuxbox ~]$ הד "CCC" | grep -E 'AAA|BBB'

[me@linuxbox ~]$

[me@linuxbox ~]$ הד "AAA" | grep -E 'AAA|BBB'

AAA

[me@linuxbox ~]$ הד "BBB" | grep -E 'AAA|BBB'

דווח

[me@linuxbox ~]$ הד "CCC" | grep -E 'AAA|BBB'

[me@linuxbox ~]$


כאן אנו רואים את הביטוי הרגולרי 'AAA|BBB', שפירושו "תתאים למחרוזת AAA או המחרוזת דווח." שימו לב שמכיוון שמדובר בתכונה מורחבת, הוספנו את -E אפשרות ל grep (אם כי יכולנו פשוט להשתמש ב egrep במקום זאת), וסגרנו את הביטוי הרגולרי במרכאות כדי למנוע מהקליפה לפרש את המטא-תווים של פס האנכי כמפעיל צינור. החלפה אינה מוגבלת לשתי אפשרויות:



[me@linuxbox ~]$ הד "AAA" | grep -E 'AAA|BBB|CCC'

AAA

[me@linuxbox ~]$ הד "AAA" | grep -E 'AAA|BBB|CCC'

AAA


כדי לשלב אלטרנטציה עם אלמנטים אחרים של ביטוי רגולרי, נוכל להשתמש ב-() כדי להפריד את החלופה:



[me@linuxbox ~]$ grep -Eh '^(bz|gz|zip)' dirlist*.txt

[me@linuxbox ~]$ grep -Eh '^(bz|gz|zip)' dirlist*.txt


ביטוי זה יתאים לשמות הקבצים ברשימות שלנו שמתחילים ב-"bz", "gz" או "zip". לו עזבנו את הסוגריים, המשמעות של הביטוי הרגולרי הזה:



[me@linuxbox ~]$ grep -Eh '^bz|gz|zip' רשימה*.txt

[me@linuxbox ~]$ grep -Eh '^bz|gz|zip' רשימה*.txt


משתנה כך שיתאים לכל שם קובץ שמתחיל ב- "bz" או מכיל "גז" או מכיל "רוכסן".


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: