שימוש בביטויים רגולריים

Fish Shell:
שימוש בביטויים רגולריים

איך לעשות זאת:

למרות ש-Fish Shell עצמו אינו כולל פקודה מובנית ל-regex, הוא משתמש ביעילות בפקודות חיצוניות כמו grep, sed ו-awk שתומכות ב-regex, מה שמאפשר לך לכלול פעולות regex בסקריפטים שלך.

התאמת תבנית בסיסית עם grep

חיפוש שורות בקובץ שמתאימות לתבנית:

grep '^[0-9]+' myfile.txt

פקודה זו מוצאת שורות שמתחילות בספרה אחת או יותר ב-myfile.txt.

חילוץ והחלפה עם sed

חילוץ מספרי טלפון מקובץ:

sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' contacts.txt

החלפת כל המופעים של “foo” ב-“bar” ב-data.txt:

sed 's/foo/bar/g' data.txt

שימוש ב-string לביטויים רגולריים בסיסיים

פקודת string של Fish Shell תומכת בפעולות regex פשוטות כמו התאמה והחלפה:

התאמת תבנית במחרוזת:

echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'

פלט:

3.1.2

החלפת ספרות שלאחר ‘fish’ ב-‘X.X.X’:

echo "Welcome to fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'

פלט:

Welcome to fish X.X.X

התאמה מתקדמת עם awk

הדפסת העמודה השנייה של נתונים בה העמודה הראשונה מתאימה לתבנית מסוימת:

awk '$1 ~ /^a[0-9]+$/ {print $2}' datafile

פקודה זו מחפשת שורות ב-datafile שבהן העמודה הראשונה מתחילה ב-“a” אחריו ספרה אחת או יותר ומדפיסה את העמודה השנייה.

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