Teilstring in Bash extrahieren
-
Verwenden den Befehl
cut
zum Extrahieren von Teilstrings in Bash - Verwenden der Substring-Expansion zum Extrahieren von Teilstrings in Bash
-
Verwenden
IFS
zum 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