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

למרבה המזל, יש דרך לבחור דפוסים מדויקים בטקסט ממש עד הדמות. זה נקרא ביטויים רגולריים, וזה מאפשר לך להיות אמן של חיפוש באמצעות טקסט.

אם שילמתם תשומת לב כלל לכלי השירות של לינוקס, אתם בוודאי מבחינים שהם עושים שימוש לעתים קרובות במשהו שנקרא ביטויים רגולריים. למרות ש- Unix ו- Linux הפכו אותם לפופולריים, ביטויים רגולריים זמינים במגוון חבילות, כולל Microsoft Word.

ביטויים רגולריים משמשים בעיקר במספר תוכניות לינוקס ראויות לציון, כולל grep (המייצג את Global Express Expression Print), Awk ו- Sed.

מוטב לחשוב על ביטויים רגילים כשפה קטנה, שאפשר לתאר את יסודותיה בחלל קטן.

אתה יכול לחפש באמצעות כלים כמו Grep או Ack או קלט רגיל או קובץ טקסט.

לדוגמה, אם היית מנסה למצוא את המונח "Firefox" בפלט מהפקודה PS, הנה איך היית עושה את זה:

 ps | grep 

וכאן אתה מוצא את המונח "maketecheasier" בקובץ.

 חלק 

מטא-תווים

בביטויים רגילים, ניתן גם לחפש חלקים של מחרוזת. הדרך שבה אתה עושה את זה עם שתי דמויות. הם נקראים מטא-תווים. הם דומים להתאמות הכלליות שבהן השתמשת בקליפה.

  • "." מייצג תו בודד. התבנית "ct" מתאימה את המילים "חתול", "חתוך" ו"מיטה "למשל.
  • * * Metacharacter פירושו למצוא את התו הקודם 0 או יותר פעמים. הדפוס "l. X" ימצא "linux", כמו גם כל מילה אחרת שהתאימה לאותה תבנית.

הסיבה שאתה פשוט לא יכול להשתמש במשהו כמו "l*x" כמו היית בקליפה היא כי התאמה 0 או יותר תווים אומר שזה ימצא שורות שלא היה "l" ואחריו כל תו אחר. במילים אחרות, כל שורה מנסה להיות מתאימים, וזה חסר תועלת לחלוטין.

מציאת דפוסים בתחילת או בסוף

ניתן גם למצוא דפוסי מתחיל בתחילת או בסוף השורות.

  • התו "^" תואם בהתחלה
  • את "$" בהתאמה בסוף.

לדוגמה, "sier$" יתאים "הפוך את הטכנולוגיה קלה יותר" ו- "^Make" יתאים ל- Make.

מציאת התאמה בטווח

אתה יכול גם להיכנס תווים מורכבים יותר. כל מה שתכניס בסוגריים מרובעים יותאם כטווח. לדוגמה, " [az] " מתאים לכל האותיות הקטנות. " [a-zA-Z] " מתאים לכל האותיות. " [a-zA-Z0-9] " מתאים לתווים אלפאנומריים. בתוך הסוגריים, התו "^" שולל דבר. " [^a-zA-Z] " מתאים לכל דבר שאינו מכתב.

ניתן גם למצוא גבולות מילים עם התווים " \< " ו- " \> ". הדפוס " \ " מתאים ל- Linux, "ברור.

אתה יכול להתאים משהו מספר מסוים של פעמים עם סוגריים מסולסלים. " {3} " מתאים משהו שלוש פעמים ו " {3, 5} " מתאים משהו בין 3 ל 5 פעמים.

עם אלה אבני הבניין פשוט, אתה יכול להתאים כמה דברים מסובכים למדי. יש הרבה יותר ביטוי רגיל מאשר ניתן להסביר במאמר קצר. אם אתה רוצה מקיף הספר אורך הטיפול של הנושא, אתה בהחלט צריך לבדוק Mastering ביטויים רגולריים על ידי ג 'פרי EF פרידל.

גילוי: מאמר זה מכיל קישור שותפים. בעוד שאנחנו רק לכתוב על מוצרים שאנחנו חושבים שמגיע להיות באתר זה, להפוך טק קל יותר עשוי להרוויח עמלה קטנה אם תלחץ דרך לקנות את המוצר המדובר.

זיכוי תמונה: xkcd