GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So prüfen Sie, ob String in Bash einen Teilstring enthält

Sie haben also eine lange Zeichenfolge und möchten überprüfen, ob diese Zeichenfolge eine Teilzeichenfolge in Ihrem Bash-Skript enthält.

Es gibt mehrere Möglichkeiten, in der Bash-Shell nach Teilzeichenfolgen zu suchen. Ich werde zuerst einige einfache Beispiele zeigen, gefolgt von einem coolen Bash-Skript, das dieses Konzept in einem realen Szenario verwendet.

Prüfung auf Teilstring in Bash mit if-else-Anweisung

Wenn Sie mit den bedingten Anweisungen in bash vertraut sind, können Sie damit auf folgende Weise prüfen, ob ein String den Teilstring enthält:

if [[ $fullstring == *"$substr"* ]];

Einfaches Beispiel für die Prüfung von Teilstrings

Hier sind die doppelten Klammern notwendig. Ich halte dies für den nativen Weg, da kein anderes Tool verwendet wird. Lassen Sie mich das obige Snippet anhand eines geeigneten Beispiels erläutern.

Initialisieren Sie eine Variable mit einer langen Zeichenfolge:

[email protected]:~$ fullstring="This is a string with a stretch"

Speichern Sie nun das Wort „stretch“ in einer Variablen namens substr1 :

[email protected]:~$ substr="stretch"

Machen wir den Substring-Vergleich:

[email protected]:~$ if [[ $fullstring == *"$substr"* ]]; then

Hier bedeutet * null oder mehr Zeichen. Ich hoffe, Sie sind mit dem Konzept der Anführungszeichen in Bash-Skripten vertraut. Das $substr innerhalb der Anführungszeichen ersetzt es durch seinen Wert.

Grundsätzlich prüfen Sie, ob die vollständige Zeichenfolge mit dem Mustertyp xxxxsubstrxxxx übereinstimmt.

Sie können den Teilstring auch direkt verwenden, anstatt ihn über eine Variable wie diese zu verwenden:

[email protected]:~$ if [[ $fullstring == *"stretch"* ]]; then

Sie verstehen das Wesentliche. Lassen Sie mich dieses Skript mit einer else-Anweisung vervollständigen, die eine alternative Meldung anzeigt, wenn die Teilzeichenfolge nicht gefunden wird:

#!/bin/bash

fullstring="This is a string with a stretch"
substr="stretch"

if [[ $fullstring == *"$substr"* ]]; then
        echo "Found $substr!"
else
        echo "$substr not found!"
fi

Sie können leicht sehen, dass, wenn Sie das obige Shell-Skript ausführen, es den Teilstring finden wird.

[email protected]:~$ bash substr.sh
Found stretch!

Ein besseres reales Beispiel für das Finden von Teilstrings in bash

Teilzeichenfolgen können in Skripten sehr hilfreich sein, um mit Benutzern zu „interagieren“. Verwenden Sie den Lesebefehl, damit Ihr Bash-Skript Benutzereingaben akzeptiert.

echo "Hey there..what is your name?"
read Name
echo "Hello "$name"! The Matrix Resurrections trailer is here! Is your pill Red or Blue?"
read Pill
if [[ $Pill == *"Red"* || $Pill == *"red"* ]]; then
  echo "Welcome..to the real world "$Name"!"
else
  echo "Wake Up "$Name"!"
fi

Geben Sie ihm die Ausführungsberechtigung und führen Sie das Skript aus:

[email protected]:~$ chmod +x makeyourchoice.sh
[email protected]:~$ ./makeyourchoice.sh

Ausgabe für obiges Skript:

Hey there..what is your name?
avimanyu
Hello avimanyu! The Matrix Resurrections trailer is here! Is your pill Red or Blue?
I have Red pill
Welcome..to the real world avimanyu!

Hier habe ich die if-Bedingung etwas verbessert, indem ich mich um zwei wahrscheinliche Chancen der Groß- und Kleinschreibung gekümmert habe. Nur Red ist hier der Teilstring. Aber red ist auch eine mögliche Eingabe. Also habe ich eine weitere Bedingung hinzugefügt. || steht für „oder“. Wenn Sie Red eingeben , es ist eine Teilzeichenfolge. Aber auch wenn red ist keine, musste ich hinzufügen.

Teilstring in Bash mit dem grep-Befehl finden

Hier ist eine andere Möglichkeit, Teilzeichenfolgen in einer Zeichenfolge in Bash zu finden. Verwenden Sie den grep-Befehl auf diese Weise:

if grep -q "$substr" <<< "$fullstring"; then echo "Found"; fi

Das q options bedeutet, dass sich grep im stillen Modus befindet und keine Ausgabe anzeigt. Bitte beachten Sie, dass es 3

Ich hoffe, dieses kurze Tutorial hat Ihnen bei der Suche nach einem bestimmten Teilstring innerhalb eines Strings geholfen. Wenn Sie Fragen oder Anregungen haben, können Sie unten einen Kommentar hinterlassen. Übrigens, für welche Pille hast du dich entschieden? Haben Sie Ihre Wahl getroffen?


Linux
  1. Überprüfen Sie, ob String in Python einen Teilstring enthält

  2. So finden Sie die Länge der Zeichenfolge in Bash [Schneller Tipp]

  3. Wie überprüfe ich Syslog in Bash unter Linux?

  4. Wie überprüfe ich, ob eine Datei in Bash leer ist?

  5. Wie überprüfe ich, ob ssh-agent bereits in bash läuft?

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

So prüfen Sie, ob eine Zeichenfolge in Bash eine Teilzeichenfolge enthält

Wie überprüfe ich, ob Bash Farben drucken kann?

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in der Bash-Shell vorhanden ist

Wie überprüfe ich die Syntax eines Bash-Skripts, ohne es auszuführen?