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

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

Eine der häufigsten Operationen bei der Arbeit mit Zeichenfolgen in Bash besteht darin, festzustellen, ob eine Zeichenfolge eine andere Zeichenfolge enthält oder nicht.

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

Verwendung von Platzhaltern #

Der einfachste Ansatz besteht darin, die Teilzeichenfolge mit Sternchen-Platzhaltersymbolen (Sternchen) * zu umgeben und vergleichen Sie es mit der Zeichenfolge. Wildcard ist ein Symbol, das verwendet wird, um null, ein oder mehrere Zeichen darzustellen.

Wenn der Test true zurückgibt , der Teilstring ist im String enthalten.

Im folgenden Beispiel verwenden wir die if-Anweisung und den Gleichheitsoperator (== ), um zu prüfen, ob der Teilstring SUB befindet sich in der Zeichenfolge STR :

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'
if [[ "$STR" == *"$SUB"* ]]; then
  echo "It's there."
fi

Wenn es ausgeführt wird, gibt das Skript Folgendes aus:

It's there.

Verwendung des Case-Operators #

Anstelle der if-Anweisung können Sie auch die case-Anweisung verwenden, um zu prüfen, ob ein String einen anderen String enthält oder nicht.

#!/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 Möglichkeit, um festzustellen, ob ein bestimmter Teilstring innerhalb eines Strings vorkommt, ist die Verwendung des Regex-Operators =~ . Wenn dieser Operator verwendet wird, wird der richtige String als regulärer Ausdruck betrachtet.

Der Punkt gefolgt von einem Sternchen .* stimmt mit null oder mehr Vorkommen eines beliebigen Zeichens außer einem Zeilenumbruchzeichen überein.

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'

if [[ "$STR" =~ .*"$SUB".* ]]; then
  echo "It's there."
fi

Das Skript gibt Folgendes wieder:

It's there.

Verwendung von Grep #

Der Befehl grep kann auch verwendet werden, um Strings in einem anderen String zu finden.

Im folgenden Beispiel übergeben wir den String $STR als Eingabe für grep und prüfen, ob die Zeichenfolge $SUB befindet sich in der Eingabezeichenfolge. Der Befehl gibt true zurück oder false nach Bedarf.

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'

if grep -q "$SUB" <<< "$STR"; then
  echo "It's there"
fi

Das -q Die Option weist grep an, leise zu sein und die Ausgabe wegzulassen.

Schlussfolgerung #

Das Prüfen, ob ein String einen Teilstring enthält, ist eine der grundlegendsten und am häufigsten verwendeten Operationen beim Bash-Scripting.

Nachdem Sie dieses Tutorial gelesen haben, sollten Sie ein gutes Verständnis dafür haben, wie Sie testen können, ob eine Zeichenfolge eine andere Zeichenfolge enthält. Sie können auch andere Befehle wie awk verwenden oder sed zum Testen.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. Wie liest man eine Zeichenfolge als Hex-Zahl in Bash?

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

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

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

  5. Wie funktioniert cat << EOF in Bash?

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 ü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?

bash - findet die Position des String-Index des Teilstrings

Wie kann ich die wörtlichen Zeichen einer Bash-Befehlszeichenfolge überprüfen?