Texte vergleichen mit "diff"
Inhaltsverzeichnis:
- Vergleichsoperatoren
- Überprüfen Sie, ob eine Zeichenfolge eine Teilzeichenfolge enthält
- Überprüfen Sie, ob eine Zeichenfolge leer ist
- Vergleichen von Zeichenfolgen mit dem Falloperator
- Lexikografischer Vergleich
- Fazit
Beim Schreiben von Bash-Skripten müssen Sie häufig zwei Zeichenfolgen vergleichen, um zu überprüfen, ob sie gleich sind oder nicht. Zwei Zeichenfolgen sind gleich, wenn sie dieselbe Länge haben und dieselbe Zeichenfolge enthalten.
In diesem Tutorial wird beschrieben, wie Sie Zeichenfolgen in Bash vergleichen.
Vergleichsoperatoren
Vergleichsoperatoren sind Operatoren, die Werte vergleichen und true oder false zurückgeben. Beim Vergleichen von Zeichenfolgen in Bash können Sie die folgenden Operatoren verwenden:
-
string1 = string2undstring1 == string2- Der Gleichheitsoperator gibt true zurück, wenn die Operanden gleich sind.- Verwenden Sie den Operator
=für dentest; then echo "Strings are equal." else echo "Strings are not equal." fi; then echo "Strings are equal." else echo "Strings are not equal." fiWenn das Skript ausgeführt wird, wird die folgende Ausgabe gedruckt.
Strings are equal.Hier ist ein weiteres Skript, das die Eingaben des Benutzers entgegennimmt und die angegebenen Zeichenfolgen vergleicht. In diesem Beispiel verwenden wir das
]; then echo "Strings are equal." else echo "Strings are not equal." fi]; then echo "Strings are equal." else echo "Strings are not equal." fiFühren Sie das Skript aus und geben Sie die Zeichenfolgen ein, wenn Sie dazu aufgefordert werden:
Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.Sie können auch das logische und
&&und oder||Saiten vergleichen:] && echo "Equal" || echo "Not equal"Überprüfen Sie, ob eine Zeichenfolge eine Teilzeichenfolge enthält
Es gibt mehrere Möglichkeiten, um zu überprüfen, ob eine Zeichenfolge eine Teilzeichenfolge enthält.
Ein Ansatz besteht darin, die Teilzeichenfolge mit Sternsymbolen
*was bedeutet, dass alle Zeichen übereinstimmen.#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fiDas Skript gibt Folgendes wieder:
It's there.Eine andere Option ist die Verwendung des Regex-Operators
=~wie unten gezeigt:#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fiDer Punkt gefolgt von einem Sternchen
.*Entspricht keinem oder mehreren Vorkommen eines beliebigen Zeichens mit Ausnahme eines Zeilenumbruchs.Überprüfen Sie, ob eine Zeichenfolge leer ist
Häufig müssen Sie auch prüfen, ob eine Variable eine leere Zeichenfolge ist oder nicht. Verwenden Sie dazu die Operatoren
-nund-z.#!/bin/bash VAR='' if]; then echo "String is empty." fiString is empty.#!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fiVergleichen von Zeichenfolgen mit dem Falloperator
Anstelle der Testoperatoren können Sie auch die case-Anweisung verwenden, um Zeichenfolgen zu vergleichen:
#!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esacLexikografischer Vergleich
Der lexikografische Vergleich ist eine Operation, bei der zwei Zeichenfolgen alphabetisch verglichen werden, indem die Zeichen in einer Zeichenfolge nacheinander von links nach rechts verglichen werden. Diese Art von Vergleich wird selten verwendet.
Die folgenden Skripte vergleichen zwei Zeichenfolgen lexikografisch:
#!/bin/bash VAR1="Linuxize" VAR2="Ubuntu" if]; then echo "${VAR1} is lexicographically greater then ${VAR2}." elif]; then echo "${VAR2} is lexicographically greater than ${VAR1}." else echo "Strings are equal" fiDas Skript gibt Folgendes aus:
Ubuntu is lexicographically greater than Linuxize.Fazit
Das Vergleichen von Zeichenfolgen ist eine der grundlegendsten und am häufigsten verwendeten Operationen in der Bash-Skripterstellung. Nachdem Sie dieses Tutorial gelesen haben, sollten Sie wissen, wie man Strings in Bash vergleicht. Sie können sich auch in unserem Handbuch über die Verkettung von Zeichenfolgen informieren.
Bash-Terminal
- Verwenden Sie den Operator
Laufen oder Fahren? Neuer Service vergleicht Kalorien mit CO2
Ein neuer Service für Smartphone-Nutzer in den USA vergleicht die beim Laufen verbrannten Kalorien mit den CO2-Emissionen des Autofahrens.
Wie vergleicht sich moto x mit dem nexus 4? eine ausführliche Anleitung
Sie fragen sich, wie das Motorola-Flaggschiff von Google im Vergleich zum Nexus 4 abschneidet? Machen Sie mit und sehen Sie sich an, wie sich das Moto X neben dem von LG hergestellten Nexus aufbaut.
Bash verketten Strings
Die Verkettung von Strings ist nur ein ausgefallenes Programmierwort zum Zusammenfügen von Strings, indem ein String an das Ende eines anderen Strings angehängt wird. In diesem Tutorial erklären wir, wie man Strings in Bash verkettet.







