Bash -Split -Zeichenfolge in ein Array

Bash -Split -Zeichenfolge in ein Array
Sie können sich in vielen Situationen befinden, in denen Sie Stringwerte in Arrays oder andere Datenstrukturen teilen müssen, während Sie an einem Bash -Skript in einem Linux -System arbeiten. Hier müssen Sie klarstellen, dass Bash uns die integrierte Split-Funktion nicht zur Verfügung stellen, um eine Zeichenfolge zu teilen. Aber es gibt immer eine Alternative zu solchen Problemen. Daher werden wir die Trennzeichen verwenden, um einige Strings in ein Array zu konvertieren oder aufzuteilen. Lassen Sie uns einige Beispiele in Ubuntu 20 ansehen.04. Öffnen Sie zuerst das Shell -Terminal mit dem "Strg+Alt+T" auf dem Desktop.

Beispiel 01

Wir haben eine „STR“ -Variable in der Schale mit einem Stringwert deklariert. Hier haben wir die Variable "IFS" als Trennzeichen verwendet, um eine Zeichenfolge "Str" zu teilen. Der Trennzeichen „IFS“ enthält „Raum“ als Wert. Dies bedeutet. Jetzt wird hier die "für" -Schloop verwendet, um die Zeichenfolge "Str" zu iterieren. In der Klausel „DO“ wird jedes Element einer „STR“ -Variable als Array angezeigt. Nach dem Ende der Schleife zeigt das Terminal die Zeichenfolge in einer Array -Form gemäß dem Bild unten an.

Beispiel 02

Lassen Sie uns ein weiteres Beispiel haben, um ein wenig andere Ausgabe zu erhalten. Sie können deutlich sehen, dass die Zeichenfolge nach jedem Wort darin „“, Zeichen enthält. Dieser besondere Charakter wird als Trennzeichen verwendet. Also haben wir "" als Wert für die "IFS" -Variable deklariert.

] Die "für" -Schloop wurde hier wieder initialisiert, um die Zeichenfolgenvariable "Str" zu iterieren. In der Klausel „DO“ der "für" -Schloop wurde die Echo -Anweisung verwendet, um jedes Wort getrennt mit der Indexnummer anzuzeigen, die durch den Variablenwert "IFS" getrennt ist. Nach dem Ende der Schleife zeigt das Programm jedes Wort der Zeichenfolge getrennt in Form eines Arrays an. Das Zeichen ",", ist für diese Art von Split zwischen den Zeichenfolgenwerten verantwortlich. Infolgedessen haben wir 5 Werte in Form eines Arrays aus einer einzelnen Zeichenfolgenvariablen "Str".

Beispiel 03

Lassen Sie uns ein weiteres Beispiel für die Aufteilung einer Zeichenfolge in ein Array in der Bash -Datei teilen. Sie müssen also eine Bash -Datei erstellen. “Test.sh ”mit einer Berührungsfrage in der Shell, wie unten erwähnt.

$ Touch Test.Sch

Öffnen Sie nun die neu erstellte Datei in einem Editor, um ein Bash -Skript darin zu schreiben. Zu diesem Zweck haben wir den Redakteur „GNU Nano“ verwendet. Sie können auch den VIM -Editor nutzen.

$ nano test.Sch

In der Bash -Datei haben wir zuerst die Bash -Erweiterung hinzugefügt, um diesen Code mit dem Bash -Befehl in der Shell ausführbar zu machen. Danach wurde eine Variable „Str“ mit einem langen String -Wert deklariert und initialisiert. Die Variable "IFS" wurde deklariert und mit einem Wert "Speicherplatz" zugeordnet und zugewiesen. Die Read-Anweisung wurde hier verwendet, um die Daten aus einer String-Variablen „str“ als Array mit Hilfe der Flag „-RA“ zu lesen und in der neuen Variablen „arr“ gespeichert zu werden.

Die Echo -Anweisung berechnet und zeigt die Größe einer "arr" -Variablen, i.e., Array. Die „für“ -Schloop ist hier, um die Werte der Array -Werte zu iterieren, ich.e., "Arr" in einer Sequenz und in der Shell mit der Printf -Anweisung angezeigt. Das Programm endet hier. Speichern Sie Ihren Code mit der "Strg+S" und beenden Sie den Editor mit der Verknüpfung "Strg+x".

Führen Sie Ihr neu erstelltes Bash -Skript mit dem Befehl bash zusammen mit dem Namen einer Bash -Datei aus, i.e., "prüfen.Sch". Die Ausführung des Bash -Skripts zeigt zunächst die Größe eines Zeichenfolge „Str“ I.e., Array. Danach zeigte das Terminal die Werte einer String -Variablen in Form eines Arrays, i.e., Jedes Wort getrennt. Insgesamt wurden 9 Wörter auf der Schale angezeigt, wie unten gezeigt.

$ Bash -Test.Sch

Beispiel 04

Lassen Sie uns eine weitere Illustration erstellen, um eine Zeichenfolge in ein Array aufzuteilen. Öffnen Sie also dieselbe Codedatei und aktualisieren Sie die Zeichenfolgenvariable "Str". Wir haben 6 Wörter in der Zeichenfolge hinzugefügt, die durch ein Komma getrennt sind. Dieses Komma wird als Trennzeichen in der Variablen „IFS“ verwendet. In der Read -Anweisung wurde die Wörter einer Zeichenfolge „str“ als Array getrennt gelesen und jedes von ihnen auf eine Variable „arr“ gespeichert. Der Trennzeichen arbeitet hier und trennt jedes Wort von einer Zeichenfolge.

Die 6 Echo -Anweisungen wurden hier verwendet, um jeden Wert der Variablen „arr“ unter Verwendung der Wörterindizes anzuzeigen. Sie können die Syntax sehen, um jeden Wert nach Index im gezeigten Bild zu nehmen.

Nachdem wir den Code mit Hilfe einer Bash -Abfrage in der Shell ausgeführt haben, haben wir 6 Ausgangszeilen. Jedes Wort einer Zeichenfolge wird getrennt in die Array -Variable „arr“ gespeichert und mit Hilfe von Indizes angezeigt.

$ Bash -Test.Sch

Beispiel 05

Lassen Sie uns unser letztes Beispiel für die Aufteilung eines Stringwerts in ein Array haben. Dieses Mal verwenden wir die Variable "IFS" nicht als Trennzeichen, um eine Zeichenfolge zu teilen. Wir werden die „TR“ -Flag dazu verwenden, dies zu tun. Öffnen Sie also die Datei “Test.sh ”in einem Nano -Editor, um es zu aktualisieren. Fügen Sie die Bash -Erweiterung in der ersten Zeile hinzu.

Die Variable "String" String -Typ wurde initialisiert. Eine andere Variable, "arr", hat den variablen "Str" -Wert verwendet und sie unter Verwendung des "Tr" -Flags in Teile aufgeteilt. Der Trennzeichen „TR“ enthält Platz als Wert. Die "für" -Schloops iteriert die variablen "arr" -Werte mit Hilfe von Indizes. Jeder Wert wird getrennt in Form eines Arrays angezeigt.

Nachdem wir den Bash -Code ausgeführt haben, haben wir das Ergebnis in einem Array -Formular erhalten. Jedes Wort in einer Zeichenfolge "Str" ist getrennt und in einen unabhängigen Wert umgewandelt, ich.e., Array -Element.

$ Bash -Test.Sch

Abschluss

In diesem Artikel haben wir mehrere Beispiele erörtert, um einen Stringwert in ein Array aufzuteilen. Zu diesem Zweck haben wir die Variablen „IFS“ und „Tr“ -Methoden „Tr“ verwendet. Alle Beispiele sind recht leicht zu verstehen und können ohne Probleme implementiert werden.