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.