Verwenden Sie $ IFS -Variable
Die spezielle Shell -Variable $ ifs wird in Bash verwendet, um eine Zeichenfolge in Wörter aufzuteilen. $ IFS -Variable wird als interner Feldabscheider (IFS) bezeichnet, mit dem der spezifische Trennzeichen zum Teilen der Zeichenfolge zugewiesen wird. Wortgrenzen werden in Bash von $ ifs identifiziert. Weißraum ist der Standard -Trennzeichen für diese Variable. Jeder andere Wert wie '\ t', '\ n', '-' usw. Kann als Trennzeichen verwendet werden. Nachdem der Wert den Wert $ ifs Variable zugewiesen hat, kann der Zeichenfolgenwert von zwei Optionen gelesen werden. Diese sind '-r' und '-a'. Die Option, '-r'. Die Zeichenfolge kann ohne Verwendung von $ IFS-Variablen in Bash geteilt werden. In den folgenden Beispielen werden verschiedene Möglichkeiten zum Aufteilen von Zeichenfolgendaten (mit $ ifs oder ohne $ ifs) angezeigt.
Beispiel-1: Trennzeichenfolge basierend auf dem Speicherplatz
Der Stringwert wird standardmäßig durch den weißen Raum geteilt. Erstellen Sie eine Datei namens 'Split1.sh 'und fügen Sie den folgenden Code hinzu. Hier wird $ textvariable verwendet, um einen String -Wert zuzuweisen. Die Shell -Variable $ IFS wird verwendet, um das Zeichen zuzuweisen, das zum Teilen der String -Daten verwendet wird. In diesem Skript wird Platz als Trennzeichen verwendet. Die Option "-a" wird mit dem Befehl Reading verwendet, um die geteilten Daten in eine Array-Variable mit dem Namen $ Strarr. Für die Schleife wird jedes Element des Arrays $ Strarr gelesen.
Split1.Sch
#!/Bin/Bash
#Definieren Sie den String -Wert
text = "Willkommen bei LinuxHint"
# Platz als Trennzeichen setzen
Ifs = "
#Lesen Sie die geteilten Wörter in ein Array, das auf dem Space -Trennzeichen basiert
Lesen Sie -a Strarr <<< "$text"
#Die Gesamtwörter gilt
echo "Es gibt $ #strarr [*] Wörter im Text."
# Drucken Sie jeden Wert des Arrays mit der Schleife aus
für val in "$ strarr [@]";
Tun
printf "$ val \ n"
Erledigt
Ausgang:
Führen Sie das Skript aus.
$ bash split1.Sch
Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.
Beispiel-2: Split String basierend auf einem bestimmten Zeichen
Jedes spezifische Zeichen kann als Trennzeichen zum Teilen des Stringwerts verwendet werden. Erstellen Sie eine Datei mit dem Namen Split2.Sch und fügen Sie den folgenden Code hinzu. Hier werden Buchname, Autorenname und Preiswert durch Hinzufügen von Comma (,) als Eingabebereich genommen. Als nächstes wird der Zeichenfolgenwert geteilt und in einem Array gespeichert, der den Wert der Shell-Variablen $ ifs basiert. Jeder Wert der Array -Elemente wird vom Indexwert gedruckt.
Split2.Sch
#!/Bin/Bash
#Lesen Sie den String -Wert
Echo "Buchname, Autorname und Preis eingeben, indem Sie Komma trennen. "
Text lesen
# COMMA als Trennzeichen setzen
Ifs = ','
Lesen Sie die geteilten Wörter in ein Array, das auf dem Komma -Trennzeichen basiert
Lesen Sie -a Strarr <<< "$text"
#Print der geteilten Wörter
Echo "Buchname: $ Strarr [0]"
Echo "Autor Name: $ Strarr [1]"
Echo "Preis: $ Strarr [2]"
Ausgang:
Führen Sie das Skript aus.
$ bash split2.Sch
Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.
Beispiel-3: Teilen Sie die Zeichenfolge ohne $ IFS-Variable auf
Dieses Beispiel zeigt, wie der Zeichenfolgenwert ohne Verwendung von $ ifs in bash geteilt werden kann. Erstellen Sie eine Datei namens 'Split3.Sch' und fügen Sie den folgenden Code hinzu. Nach dem Skript ein Textwert mit dem Dickdarm(:) :) muss als Eingabe für die Aufteilung annehmen. Hier wird der Befehl 'ReadArray' mit -D -Option verwendet, um die String -Daten aufzuteilen. Die Option '-d' wird verwendet, um das Trennzeichen im Befehl wie $ ifs zu definieren. Als nächstes wird 'für' Schleife verwendet, um die Array -Elemente zu drucken.
Split3.Sch
#!/Bin/Bash
#Lesen Sie die Hauptzeichenfolge
Echo "Geben Sie die Zeichenfolge mit Colon (:) zum Spalten ein"
Lesen Sie Mainstr
#Split die Zeichenfolge basierend auf dem Trennzeichen ':'
ReadArray -d: -t Strarr <<< "$mainstr"
printf "\ n"
# Drucken Sie jeden Wert des Arrays mithilfe der Schleife aus
für ((n = 0; n) < $#strarr[*]; n++))
Tun
echo "$ strarr [n]"
Erledigt
Ausgang:
Führen Sie das Skript aus.
$ bash split3.Sch
Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.
Beispiel-4: Teilen Sie die Zeichenfolge mit einem Multi-Charakter-Trennzeichen auf
Der String-Wert wird in allen früheren Beispielen von einem einzelnen Charakter-Trennzeichen geteilt. Wie Sie die Zeichenfolge durch Verwendung von Multi-Charakter-Trennzeichen teilen können, wird in diesem Beispiel angezeigt. Erstellen Sie eine Datei mit dem Namen 'Split4.Sch' und fügen Sie den folgenden Code hinzu. Hier wird $ textvariable verwendet, um eine String -Daten zu speichern. $ delimiter variable wird verwendet, um eine multi-charakteristische Daten zuzuweisen, die in den nächsten Anweisungen als Trennzeichen verwendet wird. $ myarray Variable wird verwendet, um jede geteilte Daten als Array-Element zu speichern. Schließlich werden alle Daten geteilten Daten mithilfe 'für' Schleife verwendet.
Split4.Sch
#!/Bin/Bash
#Definieren Sie die String, die aufgeteilt ist
text = "LearnhtmllearnPhplearnmysqllearnjavaScript"
#Define Multi-Charakter-Trennzeichen
Gremiter = "lernen"
#Catenate den Trennzeichen mit der Hauptzeichenfolge
string = $ text $ delimiter
#Split den Text basierend auf dem Trennzeichen
myarray = ()
während [[$ String]]; Tun
myarray+= ("$ String %%" $ delimiter "*")
String = $ String#*"$ delimiter"
Erledigt
#Printieren Sie die Wörter nach der Trennung
für Wert in $ myarray [@]
Tun
echo -n "$ value"
Erledigt
printf "\ n"
Ausgang:
Führen Sie das Skript aus.
$ bash split4.Sch
Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.
Die String -Daten müssen für verschiedene Programmierzwecke geteilt werden. In diesem Tutorial werden verschiedene Arten zum Aufteilen von Stringdaten in Bash angezeigt. Hoffentlich können die Leser nach dem Üben der oben genannten Beispiele alle Zeichenfolgendaten basierend auf ihrer Anforderung teilen.
Weitere Informationen finden Sie im Video!