Android

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

Supersection 1, Less Comfortable

Supersection 1, Less Comfortable

Inhaltsverzeichnis:

Anonim

Eine der häufigsten Operationen beim Arbeiten mit Zeichenfolgen in Bash besteht darin, zu bestimmen, ob eine Zeichenfolge eine andere Zeichenfolge enthält.

zeigen wir Ihnen verschiedene Möglichkeiten, um zu überprüfen, ob eine Zeichenfolge eine Teilzeichenfolge enthält.

Platzhalter verwenden

Am einfachsten ist es, die Teilzeichenfolge mit Sternchen-Platzhaltersymbolen (Sternchen) * und mit der Zeichenfolge zu vergleichen. Platzhalter ist ein Symbol, das für null, ein oder mehrere Zeichen verwendet wird.

Wenn der Test true zurückgibt, ist die Teilzeichenfolge in der Zeichenfolge enthalten.

Im folgenden Beispiel überprüfen wir mit der if-Anweisung und dem Gleichheitsoperator ( == ), ob die Teilzeichenfolge SUB in der Zeichenfolge STR :

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

Bei der Ausführung gibt das Skript Folgendes aus:

It's there.

Verwenden des Falloperators

Anstelle der if-Anweisung können Sie auch die case-Anweisung verwenden, um zu überprüfen, ob eine Zeichenfolge eine andere Zeichenfolge enthält.

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

Regex Operator verwenden

Eine weitere Option, um festzustellen, ob eine angegebene Teilzeichenfolge in einer Zeichenfolge vorkommt, ist die Verwendung des Regex-Operators =~ . Wenn dieser Operator verwendet wird, wird die richtige Zeichenfolge als regulärer Ausdruck betrachtet.

Der Punkt gefolgt von einem Sternchen .* Entspricht keinem oder mehreren Vorkommen eines beliebigen Zeichens mit Ausnahme eines Zeilenumbruchs.

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

Das Skript gibt Folgendes wieder:

It's there.

Grep verwenden

Mit dem Befehl grep können Sie auch Zeichenfolgen in einer anderen Zeichenfolge suchen.

Im folgenden Beispiel übergeben wir die Zeichenfolge $STR als Eingabe an grep und überprüfen, ob die Zeichenfolge $SUB in der Eingabezeichenfolge enthalten ist. Der Befehl gibt je nach Bedarf true oder false .

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

Die Option -q weist grep an, still zu sein, um die Ausgabe auszulassen.

Fazit

Die Überprüfung, ob eine Zeichenfolge eine Teilzeichenfolge enthält, ist eine der grundlegendsten und am häufigsten verwendeten Operationen in der Bash-Skripterstellung.

Nachdem Sie dieses Tutorial gelesen haben, sollten Sie wissen, wie Sie testen können, ob eine Zeichenfolge eine andere Zeichenfolge enthält. Sie können auch andere Befehle wie awk oder sed zum Testen verwenden.

Bash-Terminal