HOWTO · Bash
Überprüfen Sie, ob String in Bash einen Teilstring enthält
Ein Bash-Programmier-Tutorial, um herauszufinden, ob eine Zeichenfolge eine Teilzeichenfolge enthält oder nicht.
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.