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

Bash-Anfängerserie Nr. 6:Zeichenfolgenoperationen in Bash

Lass uns ein paar Saiten manipulieren!

Wenn Sie sich mit Variablen in Bash auskennen, wissen Sie bereits, dass es keine separaten Datentypen für String, Int usw. gibt. Alles ist eine Variable.

Aber das bedeutet nicht, dass Sie keine String-Manipulationsfunktionen haben.

Im vorherigen Kapitel haben Sie arithmetische Operatoren in Bash gelernt. In diesem Kapitel lernen Sie, wie Sie Strings mit einer Vielzahl von String-Operationen manipulieren. Sie werden lernen, wie man die Länge einer Zeichenfolge erhält, Zeichenfolgen verkettet, Teilzeichenfolgen extrahiert, Teilzeichenfolgen ersetzt und vieles mehr!

Stringlänge abrufen

Beginnen wir damit, die Länge eines Strings in Bash zu ermitteln.

Ein String ist nichts anderes als eine Folge (Array) von Zeichen. Lassen Sie uns einen String namens distro erstellen und initialisieren Sie seinen Wert auf „Ubuntu “.

distro="Ubuntu"

Um nun die Länge des Distro-Strings zu erhalten, müssen Sie nur noch # hinzufügen vor dem Variablennamen. Sie können die folgende echo-Anweisung verwenden:

[email protected]:~/scripts$ echo ${#distro}
6

Beachten Sie, dass der Echo-Befehl zum Drucken des Werts dient. {#string} gibt die Länge der Saite an.

Zwei Strings verketten

Sie können eine Zeichenfolge an das Ende einer anderen Zeichenfolge anhängen; Dieser Vorgang wird als Zeichenfolgenverkettung bezeichnet.

Um dies zu demonstrieren, erstellen wir zunächst zwei Zeichenfolgen str1 und str2 wie folgt:

str1="hand"
str2="book"

Nun können Sie beide Strings verbinden und das Ergebnis einem neuen String mit dem Namen str3 zuweisen wie folgt:

str3=$str1$str2

Einfacher geht es nicht, oder?

Teilstrings finden


Sie können die Position (Index) eines bestimmten Buchstabens oder Wortes in einer Zeichenfolge finden. Um dies zu demonstrieren, erstellen wir zunächst einen String mit dem Namen str wie folgt:

str="Bash is Cool"

Jetzt können Sie die spezifische Position (Index) des Teilstrings cool erhalten. Verwenden Sie dazu den expr Befehl:

[email protected]:~/scripts$ word="Cool"
[email protected]:~/scripts$ expr index "$str" "$word"
9

Das Ergebnis 9 ist der Index, bei dem das Wort „Cool“ im str beginnt Zeichenfolge.

Ich vermeide absichtlich bedingte Anweisungen wie if, sonst werden bedingte Anweisungen in dieser Bash-Anfängerserie später behandelt.

Teilzeichenfolgen extrahieren

Sie können auch Teilstrings aus einem String extrahieren; Das heißt, Sie können einen Buchstaben, ein Wort oder einige Wörter aus einer Zeichenfolge extrahieren.

Um dies zu demonstrieren, erstellen wir zunächst eine Zeichenfolge mit dem Namen foss wie folgt:

foss="Fedora is a free operating system"

Nehmen wir nun an, Sie möchten das erste Wort „Fedora“ im Foss extrahieren Schnur. Sie müssen die Startposition (Index) der gewünschten Teilzeichenfolge und die Anzahl der zu extrahierenden Zeichen angeben.

Um die Teilzeichenfolge „Fedora“ zu extrahieren, verwenden Sie daher 0 als Startposition und extrahieren 6 Zeichen von der Startposition:

[email protected]:~/scripts$ echo ${foss:0:6}
Fedora

Beachten Sie, dass die erste Position in einem String Null ist, genau wie bei Arrays in Bash. Sie können auch nur die Anfangsposition einer Teilzeichenfolge angeben und die Anzahl der Zeichen weglassen. In diesem Fall wird alles von der Anfangsposition bis zum Ende der Zeichenfolge extrahiert.

Zum Beispiel, um den Teilstring „freies Betriebssystem“ aus der Datei foss zu extrahieren Schnur; wir müssen nur die Startposition 12 angeben:

[email protected]:~/scripts$ echo ${foss:12}
free operating system

Teilstrings ersetzen

Sie können einen Teilstring auch durch einen anderen Teilstring ersetzen; Beispielsweise können Sie im foss „Fedora“ durch „Ubuntu“ ersetzen Zeichenfolge wie folgt:

[email protected]:~/scripts$ echo ${foss/Fedora/Ubuntu}
Ubuntu is a free operating system

Machen wir ein weiteres Beispiel, ersetzen wir den Teilstring „kostenlos“ durch „beliebt“:

[email protected]:~/scripts$ echo ${foss/free/popular}
Fedora is a popular operating system

Da Sie den Wert nur mit dem Echo-Befehl drucken, wird die ursprüngliche Zeichenfolge nicht wirklich geändert.

Teilstrings löschen

Sie können auch Teilstrings entfernen. Lassen Sie uns zur Demonstration zunächst einen String namens fact erstellen wie folgt:

fact="Sun is a big star"

Sie können nun den Teilstring „big“ aus dem String fact entfernen:

[email protected]:~/scripts$ echo ${fact/big}
Sun is a star

Lassen Sie uns einen weiteren String namens cell erstellen:

cell="112-358-1321"

Angenommen, Sie möchten alle Bindestriche aus der Zelle entfernen Schnur; Die folgende Anweisung entfernt nur das erste Bindestrichvorkommen in der Zelle Zeichenkette:

[email protected]:~/scripts$ echo ${cell/-}
112358-1321

Zum Entfernen aller Vorkommen von Bindestrichen aus der Zelle string müssen Sie doppelte Schrägstriche wie folgt verwenden:

[email protected]:~/scripts$ echo ${cell//-}
1123581321

Beachten Sie, dass Sie echo-Anweisungen verwenden und die Zellzeichenfolge daher intakt ist und nicht geändert wird. Sie zeigen nur das gewünschte Ergebnis an!

Um die Zeichenfolge zu ändern, müssen Sie das Ergebnis wie folgt wieder der Zeichenfolge zuweisen:

[email protected]:~/scripts$ echo $cell
112-358-1321
[email protected]:~/scripts$ cell=${cell//-}
[email protected]:~/scripts$ echo $cell
1123581321

Umwandlung von Groß- und Kleinbuchstaben im String

Sie können eine Zeichenfolge auch in Klein- oder Großbuchstaben umwandeln. Lassen Sie uns zuerst zwei Strings mit dem Namen legend erstellen und Schauspieler:

legend="john nash"
actor="JULIA ROBERTS"

Sie können alle Buchstaben in der Legende umwandeln Zeichenfolge in Großbuchstaben:

[email protected]:~/scripts$ echo ${legend^^}
JOHN NASH

Sie können auch alle Buchstaben in der Akteurzeichenfolge in Kleinbuchstaben umwandeln:

[email protected]:~/scripts$ echo ${actor,,}
julia roberts

Sie können auch nur das erste Zeichen der Legende umwandeln Zeichenfolge wie folgt in Großbuchstaben:

[email protected]:~/scripts$ echo ${legend^}
John nash

Ebenso können Sie nur das erste Zeichen des Schauspielers umwandeln string wie folgt in Kleinbuchstaben:

[email protected]:~/scripts$ echo ${actor,}
jULIA ROBERTS

Sie können auch bestimmte Zeichen in einer Zeichenfolge in Groß- oder Kleinbuchstaben ändern; Sie können beispielsweise die Buchstaben j ändern und n in der Legende in Großbuchstaben umwandeln Zeichenfolge wie folgt:

[email protected]:~/scripts$ echo ${legend^^[jn]}
JohN Nash

Fantastisch! Damit sind wir am Ende dieses Tutorials in der Bash-Anfängerserie angelangt. Laden Sie das untenstehende PDF herunter und üben Sie, was Sie gerade gelernt haben.

Bash-Kapitel-6-ÜbungsfragenProbleme und deren Lösung, um zu üben, was Sie gerade in diesem Kapitel gelernt habenBash-Kapitel-6-Übungsfragen-Linux-Handbuch.pdf28 KB

Ich hoffe, es hat Ihnen Spaß gemacht, Strings in Bash zu manipulieren, und sehen Sie sich das nächste Kapitel an, da Sie lernen werden, wie Sie Ihren Bash-Skripten Fähigkeiten zur Entscheidungsfindung hinzufügen können!


Linux
  1. Durchführen von atomaren Schreibvorgängen in einer Datei in Bash?

  2. So teilen Sie eine Zeichenfolge in Bash-Skript auf

  3. Bash-Anfängerserie Nr. 9:Verwenden von Funktionen in Bash

  4. Bash-Anfängerserie Nr. 8:Schleifen in Bash

  5. Was macht 'bash -c'?

Bash-Anfängerserie Nr. 1:Erstellen Sie Ihr erstes Bash-Shell-Skript und führen Sie es aus

Bash-Anfängerserie Nr. 5:Verwenden von arithmetischen Operatoren in Bash-Skripten

Bash-Anfängerserie Nr. 4:Verwenden von Arrays in Bash

Bash-Anfängerserie Nr. 3:Übergabe von Argumenten an Bash-Skripte

Bash-Anfängerserie Nr. 7:Entscheidungsfindung mit If Else- und Case-Anweisungen

Bash-Anfängerserie Nr. 10:Automatisierung mit Bash