Teilstring in Bash extrahieren

Fumbani Banda 19 Januar 2022
  1. Verwenden den Befehl cut zum Extrahieren von Teilstrings in Bash
  2. Verwenden der Substring-Expansion zum Extrahieren von Teilstrings in Bash
  3. Verwenden IFS zum Extrahieren von Teilstrings in Bash
Teilstring in Bash extrahieren

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
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Verwandter Artikel - Bash String