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 יכולים לנצל את הכוח המלא של ביטויים רגולריים למשימות עיבוד טקסט מורכבות, מה שמשדרג את היכולות המקוריות של המעטפת.