Zeichenkettenersetzung in Bash

Nilesh Katuwal 24 März 2022
  1. Ersetzen einer Zeichenkette durch eine andere in Bash
  2. Ersetzen Sie die gesamte Zeichenfolge gleich der Teilzeichenfolge
  3. Ersetzen der letzten erkannten Teilzeichenkette in einer Zeichenfolge in Bash
Zeichenkettenersetzung in Bash

Bash ermöglicht es uns, andere Programme aufzurufen, und durch die Angabe der erforderlichen Eingaben und Ausgaben können wir jedes Ergebnis generieren. In diesem Artikel wird erläutert, wie Sie eine Teilzeichenfolge durch eine andere Zeichenfolge ersetzen.

Ersetzen einer Zeichenkette durch eine andere in Bash

Der folgende Befehl ersetzt die erste erkannte Zeichenfolge, die mit einer Teilzeichenfolge übereinstimmt, beginnend mit dem ersten Zeichen der Zeichenfolge, durch eine Ersatzzeichenfolge.

${string/substring/replacement}

Sehen wir uns ein Beispiel an.

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text/linux/"$reptext"}''

Ausgabe:

I am learning bash and linux

Wie oben erwähnt, wird der erste String linux durch bash ersetzt, der andere bleibt unverändert.

Ersetzen Sie die gesamte Zeichenfolge gleich der Teilzeichenfolge

Wir verwenden den folgenden Befehl, um die gesamte Zeichenfolge, die der Teilzeichenfolge entspricht, durch die Ersatzzeichenfolge zu ersetzen.

${string//substring/replacement}

Sehen wir uns ein Beispiel an:

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text//linux/"$reptext"}"

Ausgabe:

I am learning bash and bash

Jetzt gibt es zwei Schrägstriche (//) statt einem (/). In der Ausgabe können wir sehen, dass der obige Befehl alle Teilzeichenfolgen gleich der Ersatzzeichenfolge ersetzt hat.

Ersetzen der letzten erkannten Teilzeichenkette in einer Zeichenfolge in Bash

Wir verwenden den folgenden Befehl, um die letzte in einer Zeichenfolge erkannte Teilzeichenfolge durch eine Ersatzzeichenfolge zu ersetzen.

${string/%substring/replacement}

Sehen wir uns ein Beispiel an:

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text/%linux/"$reptext"}"

Ausgabe:

I am learning linux and bash