אנדרואיד

כיצד לבדוק אם מחרוזת מכילה מחרוזת בתחתית

Os humildes serão exaltados (Homilia Diária.1619: Sábado da 30.ª Semana do Tempo Comum)

Os humildes serão exaltados (Homilia Diária.1619: Sábado da 30.ª Semana do Tempo Comum)

תוכן עניינים:

Anonim

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

באמצעות תווי בר

הגישה הקלה ביותר היא להקיף את המחרוזת בסמלי תווים כלליים (כוכבית) * ולהשוות אותה למחרוזת. Wildcard הוא סמל המשמש לייצוג אפס, תו אחד או יותר.

אם הבדיקה חוזרת true , מחרוזת המשנה כלולה במחרוזת.

בדוגמה למטה אנו משתמשים באמירה if ובמפעיל השוויון ( == ) כדי לבדוק אם SUB המתחיל נמצא בתוך המחרוזת STR :

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

בעת ביצוע התסריט פלט:

It's there.

שימוש במפעיל המקרה

במקום להשתמש בהצהרת if תוכלו גם להשתמש בהצהרת המקרה כדי לבדוק אם מחרוזת כוללת מחרוזת אחרת או לא.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac

באמצעות מפעיל רגקס

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

התקופה שאחריה כוכבית .* תואמת אפס או יותר מתרחשת בכל תו פרט לדמות חדשה.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

התסריט מהדהד את הדברים הבאים:

It's there.

באמצעות גרפ

ניתן להשתמש בפקודת grep למציאת מחרוזות במחרוזת אחרת.

בדוגמה הבאה אנו מעבירים את המחרוזת $STR כקלט ל- grep ובודקים אם המחרוזת $SUB נמצאת בתוך מחרוזת הקלט. הפקודה תחזיר true או false לפי הצורך.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi

האפשרות -q אומרת ל- grep להיות שקט, להשמיט את הפלט.

סיכום

בדיקה אם מחרוזת מכילה מחרוזת היא אחת הפעולות הבסיסיות והמשתמשות ביותר בסקריפטים של Bash.

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

מסוף bash