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

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

איך ל:

התאמת תבניות בסיסית

כדי לבדוק אם מחרוזת מתאימה לתבנית, תוכל להשתמש ב-grep, כלי שורת פקודה לחיפוש בערכות נתוני טקסט פשוטות עבור שורות שמתאימות לביטוי רגולרי:

echo "Hello, World!" | grep -o "World"
# פלט: World

חילוץ נתונים ספציפיים

כדי לחלץ חלקים מנתונים שמתאימים לתבניות regex שלך, תוכל להשתמש ב--o עם grep:

echo "Error: File not found" | grep -oE "[A-Za-z]+:"
# פלט: Error:

שימוש ב-Regex עם sed

sed (עורך זרם) הוא כלי עוצמתי לניתוח והמרת טקסט. הנה איך להשתמש ב-sed עם regex כדי להחליף טקסט:

echo "Bash is great" | sed -e 's/great/awesome/'
# פלט: Bash is awesome

התאמת תבניות בהצהרות תנאיות

-Bash תומך גם ב-regex בהצהרות תנאיות ישירות:

[[ "https://example.com" =~ ^https?:// ]] && echo "URL is valid" || echo "URL is invalid"
# פלט: URL is valid

התאמת תבניות ומניפולציה מתקדמת עם awk

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

echo -e "ID,Name,Age\n1,John,22\n2,Jane,24" | awk -F, '$3 > 22 {print $2 " is older than 22."}'
# פלט: Jane is older than 22.

בעוד שפונקציונליות ה-regex המובנית של Bash כוללת מגוון רחב של שימושים, למשימות regex מתקדמות מאוד, תוכל לשקול להשתמש בשילוב של סקריפטים ב-Bash עם סקריפטים ב-perl או python, מכיוון ששפות אלו מציעות ספריות regex עוצמתיות (למשל, re ב-Python). דוגמה פשוטה עם Python:

echo "Capture this 123" | python3 -c "import sys; import re; print(re.search('(\d+)', sys.stdin.read()).group(0))"
# פלט: 123

הטמעת שפות תכנות אלו כשצריך יכולה לעזור לך לנצל את הכוח המלא של regex בסקריפטים שלך ב-Bash.