Überprüfen Sie, ob String in Bash einen Teilstring enthält
-
Verwenden Sie die bedingte Anweisung
case
(Methode 1) -
Verwenden Sie Platzhalter in der
if
-Anweisung (Methode 2) -
Verwenden Sie den
grep
-Befehl von Bash (Methode 3) -
Verwenden Sie den Regex-Operator (
~=
) (Methode 4)
Das Finden von Teilstrings aus einem String ist die am häufigsten verwendete Operation mit Strings. Es gibt viele Möglichkeiten, diese Aufgabe auszuführen.
In diesem Artikel werden wir mehrere skriptbasierte Bash-Implementierungen sehen, um herauszufinden, ob eine bestimmte Zeichenfolge eine bestimmte Teilzeichenfolge enthält oder nicht.
Verwenden Sie die bedingte Anweisung case
(Methode 1)
Der case
ist eine bedingte Anweisung in der Bash und kann verwendet werden, um einen bedingten Block im Skript zu implementieren. Diese Anweisung kann verwendet werden, um einen Teilstring in Bash zu finden.
Skript:
#!/bin/bash
str='This is a bash tutorial'
substr='bash'
case $str in
*"$substr"*)
echo "str contains the substr"
;;
esac
Wir haben 2 Strings, str
und substr
. Wir haben eine case
-Anweisung angewendet, um herauszufinden, ob str
substr
enthält oder nicht.
Ausgabe:
Verwenden Sie Platzhalter in der if
-Anweisung (Methode 2)
Wir können auch einen Teilstring aus einem String finden, indem wir Platzhalter in der if
-Anweisung verwenden. Der einfachste Weg, einen Teilstring zu finden, besteht darin, das Platzhaltersymbol Sternchen (*
) um den Teilstring zu setzen und ihn mit dem tatsächlichen String zu vergleichen.
Skript:
#!/bin/bash
str='This is a bash tutorial'
substr='tutorial'
if [[ "$str" == *"$substr"* ]]; then
echo "String contains the sunstring"
else
echo "String does'nt contains the substring"
fi
Ausgabe:
Verwenden Sie den grep
-Befehl von Bash (Methode 3)
Der Befehl grep
wird auch verwendet, um etwas in einer Datei oder einem String zu finden. Es hat eine Option -q
, die dem grep
-Befehl mitteilt, die Ausgabe nicht anzuzeigen; true
oder false
zurückgeben.
Skript:
#!/bin/bash
str='This is a bash tutorial'
substr='tutorial'
if grep -q "$substr" <<< "$str"; then
echo "String contains the substring"
fi
Ausgabe:
Verwenden Sie den Regex-Operator (~=
) (Methode 4)
Es gibt einen weiteren Operator namens regex operator
(~=), mit dem wir zwei Strings vergleichen können und ob ein String einen Teilstring enthält.
Skript:
#!/bin/bash
str='This is a bash tutorial'
substr='bash'
if [[ "$str" =~ .*"$substr".* ]]; then
echo "String contains the substring"
fi
Beachten Sie, dass in der bedingten Anweisung der Regex-Operator die Zeichenfolge auf der rechten Seite zu einem regulären Ausdruck macht und das Symbol .*
bedeutet, dass 0 oder mehr Vorkommen einer Teilzeichenfolge in der Zeichenfolge verglichen werden.
Ausgabe:
Daher können Sie mehrere Möglichkeiten sehen, einen Teilstring aus einem String zu finden.
Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn