Überprüfen Sie, ob String in Bash einen Teilstring enthält

Muhammad Husnain 30 Januar 2023
  1. Verwenden Sie die bedingte Anweisung case (Methode 1)
  2. Verwenden Sie Platzhalter in der if-Anweisung (Methode 2)
  3. Verwenden Sie den grep-Befehl von Bash (Methode 3)
  4. Verwenden Sie den Regex-Operator (~=) (Methode 4)
Überprüfen Sie, ob String in Bash einen Teilstring enthält

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:

Anwendungsfall Bedingte Anweisung

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 Platzhalter in der if-Anweisung

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 grep-Befehl von Bash

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:

Verwenden Sie den Regex-Operator

Daher können Sie mehrere Möglichkeiten sehen, einen Teilstring aus einem String zu finden.

Muhammad Husnain avatar Muhammad Husnain avatar

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

Verwandter Artikel - Bash Substring