Teilstring in Bash extrahieren
-
Verwenden den Befehl
cutzum Extrahieren von Teilstrings in Bash - Verwenden der Substring-Expansion zum Extrahieren von Teilstrings in Bash
-
Verwenden
IFSzum Extrahieren von Teilstrings in Bash
Dieses Tutorial zeigt verschiedene Möglichkeiten zum Extrahieren eines Teilstrings in bash mit dem Befehl cut, der Erweiterung des Teilstrings und dem Internal Field Separator (IFS).
Verwenden den Befehl cut zum Extrahieren von Teilstrings in Bash
Das folgende Skript verwendet den Befehl cut, um einen Teilstring zu extrahieren. Die Option -d gibt das Trennzeichen an, mit dem die Zeichenkette in Felder unterteilt wird, und die Option -f legt die Nummer des zu extrahierenden Felds fest.
In unserem Fall wird die Zeichenkette mit _ als Trennzeichen geteilt, und um auf das dritte Feld zuzugreifen, übergeben wir das Argument 3 an die Option -f.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
printf "full string: $numbers\n"
substring=$(echo $numbers | cut -d '_' -f 3)
printf "substring: $substring\n"
Führen Sie das Bash-Skript wie folgt aus.
bash substring.sh
Aus der Ausgabe wurde ein Teilstring three aus dem String one_two_three_four_five extrahiert.
Script to extract a substring!
full string: one_two_three_four_five
substring: three
Verwenden der Substring-Expansion zum Extrahieren von Teilstrings in Bash
Die Teilstring-Erweiterung ist eine integrierte Bash-Funktion. Es verwendet die folgende Syntax.
$(variable:offset:length)
Die variable ist der Variablenname, der den String enthält. Der offset wird verwendet, um die Position anzugeben, von der aus die Extraktion eines Strings beginnen soll. Die length wird verwendet, um den Bereich der zu extrahierenden Zeichen anzugeben, mit Ausnahme des offset.
Das folgende Skript setzt den Variablennamen auf numbers, den offset auf 4 und die length des zu extrahierenden Strings auf 3.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
substring=${numbers:4:3}
printf "full string: $numbers\n"
printf "substring: $substring\n"
Führen Sie das Bash-Skript wie folgt aus.
bash substring.sh
Aus der Ausgabe wurde ein Teilstring two aus dem String one_two_three_four_five extrahiert.
Script to extract a substring!
full string: one_two_three_four_five
substring: two
Verwenden IFS zum Extrahieren von Teilstrings in Bash
IFS steht für Internal Field Separator. Das IFS wird zum Aufteilen von Wörtern nach der Erweiterung und zum Aufteilen von Zeilen in Wörter mit dem eingebauten Lesebefehl verwendet.
Im folgenden Skript wurde der IFS auf _ gesetzt. Dies bedeutet, dass die Zeichenkette in der Variablen numbers mit _ als Trennzeichen geteilt werden sollte. Nachdem der String geteilt wurde, können wir mit der Syntax $[integer] auf die Wörter zugreifen. Auf das erste Wort kann mit $1, auf das zweite Wort mit $2, auf das dritte Wort mit $3, und so weiter.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
IFS="_"
set $numbers
printf "full string: $numbers\n"
printf "substring: $2\n"
Führen Sie das Bash-Skript wie folgt aus.
bash substring.sh
Aus der Ausgabe wurde ein Teilstring two aus dem String one_two_three_four_five extrahiert.
Script to extract a substring!
full string: one_two_three_four_five
substring: two
