Entfernen von Zeichen aus String in Bash

Removing Characters From String Bash



Manchmal müssen Sie möglicherweise Zeichen aus einer Zeichenfolge entfernen. Was auch immer der Grund ist, Linux bietet Ihnen verschiedene integrierte, praktische Tools, mit denen Sie Zeichen aus einer Zeichenfolge in Bash entfernen können. In diesem Artikel erfahren Sie, wie Sie mit diesen Tools Zeichen aus einer Zeichenfolge entfernen.

In dem Artikel wird beschrieben, wie Sie Folgendes ausführen:







  • Zeichen aus String entfernen mit sed
  • Zeichen aus String entfernen mit awk
  • Zeichen mit Ausschneiden aus der Zeichenfolge entfernen
  • Zeichen aus String mit tr . entfernen

Die in diesem Artikel gezeigten Befehle wurden in Ubuntu 20.04 Focal Fossa ausgeführt. Dieselben Befehle können auch auf anderen Linux-Distributionen ausgeführt werden, die über die oben genannten Tools verfügen. Wir werden die Standard-Terminal-Anwendung verwenden, um die Befehle auszuführen. Sie können auf die Terminal-Anwendung zugreifen, indem Sie die Tastenkombination Strg+Alt+T verwenden.



Zeichen aus String entfernen mit sed

Sed ist ein leistungsstarkes und praktisches Dienstprogramm zum Bearbeiten von Textströmen. Es ist ein nicht interaktiver Texteditor, mit dem Sie grundlegende Textmanipulationen an Eingabestreams durchführen können. Sie können auch sed verwenden, um unerwünschte Zeichen aus Strings zu entfernen.



Zu Demonstrationszwecken verwenden wir eine Beispielzeichenfolge und leiten sie dann an den Befehl sed weiter.





Spezifisches Zeichen aus String entfernen

Mit sed können Sie ein bestimmtes Zeichen aus einer Zeichenfolge entfernen. Um beispielsweise h aus der Zeichenfolge zu entfernen Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | sed 'NS//'

Dadurch wird nur das erste Vorkommen von „h“ in der Zeichenfolge entfernt.
Spezifisches Zeichen aus String1 entfernen
Um alle Vorkommen von ‚h‘ aus der Zeichenfolge zu entfernen, verwenden Sie den folgenden Befehl:



$rauswerfen 'Hallo, wie geht's dir?' | sed 's/h//g'

Woher g steht für global. Es entfernt alle Vorkommen von ‚h‘ in der Zeichenfolge.
Spezifisches Zeichen aus String2 entfernen

Erstes Zeichen aus String entfernen

So entfernen Sie das erste Zeichen aus der Zeichenfolge Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | sed 's/^.//' Datei

Wobei (.) genau einem einzelnen Zeichen entspricht und (^) einem beliebigen Zeichen am Anfang der Zeichenfolge entspricht.
Erstes Zeichen aus String entfernen

Letztes Zeichen aus String entfernen

So entfernen Sie das letzte Zeichen aus der Zeichenfolge Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | sed 's/.$//'

Woher ( . ) entspricht genau einem einzelnen Zeichen und ($) entspricht einem beliebigen Zeichen am Ende der Zeichenfolge.
Letztes Zeichen aus String entfernen

Erstes und letztes Zeichen aus String entfernen

So entfernen Sie das erste und letzte Zeichen aus der Zeichenfolge Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | sed 's /^.//; s /.$//'

Erstes und letztes Zeichen aus String entfernen

Entfernen Sie Zeichen aus der Zeichenfolge mit awk

Awk ist eine leistungsstarke Skriptsprache, die zusammen mit der Textverarbeitung für den Mustervergleich verwendet wird. Mit Awk können Sie Text auf verschiedene Weise filtern und transformieren. Sie können auch awk verwenden, um Zeichen aus Strings zu entfernen.

Zu Demonstrationszwecken verwenden wir einen Beispielstring und leiten ihn dann an den awk-Befehl weiter.

Erstes Zeichen aus einer Zeichenfolge entfernen

So entfernen Sie das erste Zeichen aus der Zeichenfolge Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | awk '{ print substr( $0, 2 ) }'

Dabei ist ($0) die gesamte Zielzeichenfolge und (2) die Anfangsposition des Zeichens. Der obige Befehl entfernt das erste Zeichen „h“, die Zeichennummer „1“ und gibt die Zielzeichenfolge beginnend mit dem zweiten Zeichen „e“ zurück.
Erstes Zeichen aus einer Zeichenfolge entfernen

Entfernen Sie die ersten beiden Zeichen aus der Zeichenfolge

Sie können auch eine bestimmte Anzahl von Zeichen am Anfang einer Zeichenfolge entfernen. Um beispielsweise die ersten beiden Zeichen aus der Zeichenfolge zu entfernen Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | awk '{ print substr ($0, 3 ) }’

Der obige Befehl entfernt die ersten beiden Zeichen „he“ oder die Zeichennummern „1 und 2“ und gibt die Zielzeichenfolge zurück, die mit der Zeichennummer „3“ oder „l“ beginnt.
Entfernen Sie die ersten beiden Zeichen aus der Zeichenfolge

Letztes Zeichen aus String entfernen

So entfernen Sie das letzte Zeichen aus Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | awk '{ print substr( $0, 1, length($0)-1 ) }'

Woher Länge($0)-1 bedeutet Abzug 1 “ von der Gesamtzeichenlänge.

Der obige Befehl druckt die Zeichenfolge beginnend mit der Zeichennummer ‘ 1 ' bis zu Länge($0)-1 um das letzte Zeichen abzustreifen.

Es gibt ' 19 ’ Zeichen (einschließlich Leerzeichen) in der obigen Zeichenfolge. Der Befehl funktioniert, indem alle Zeichen gedruckt werden, beginnend mit dem Zeichen ‘ 1 ’ und bis zum Zeichen ‘ 18 ,’ beim Entfernen des letzten Zeichens ‘ 19 . ’

rmv letztes Zeichen von Zeichenfolge

Entfernen Sie die letzten beiden Zeichen aus der Zeichenfolge

So entfernen Sie die letzten beiden Zeichen aus Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | awk '{ print substr( $0, 1, length($0)-2 ) }'

Woher Länge($0)-2 bedeutet Abzug 2 “ von der Gesamtzeichenlänge.

Der obige Befehl gibt die Zeichenfolge aus, beginnend mit der Zeichennummer ‘ 1 ’ und bis Zeichennummer ‘ Länge($0)-2 ,’, um die letzten beiden Zeichen in der Zeichenfolge zu entfernen.
Entfernen Sie die letzten beiden Zeichen aus der Zeichenfolge

Entfernen Sie sowohl das erste als auch das letzte Zeichen aus der Zeichenfolge

So entfernen Sie sowohl das erste als auch das letzte Zeichen aus der Zeichenfolge Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | awk '{print substr($0, 2, length($0) - 2)}'

Woher Länge($0)-2 bedeutet Abzug 2 “ von der Gesamtzeichenlänge.

Der obige Befehl gibt die Zeichenfolge aus, beginnend mit der Zeichennummer ‘ 2 ’ bis Zeichennummer ‘ Länge($0)-2 ,’, um das erste und letzte Zeichen zu entfernen.

Entfernen Sie sowohl das erste als auch das letzte Zeichen aus der Zeichenfolge

Zeichen aus String entfernen mit cut

Cut ist ein Befehlszeilentool, das häufig verwendet wird, um einen Textabschnitt aus einer Zeichenfolge oder Datei zu extrahieren und das Ergebnis auf einer Standardausgabe auszugeben. Sie können diesen Befehl auch verwenden, um Zeichen aus einer Zeichenfolge zu entfernen.

Zu Demonstrationszwecken verwenden wir einen Beispielstring und leiten ihn dann an den Befehl cut weiter.

Erstes Zeichen aus String entfernen

Um das erste Zeichen aus der Zeichenfolge zu entfernen, Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | schneiden -C 2-

Dieser Befehl druckt die Zeichenfolge beginnend mit dem zweiten Zeichen, während das erste Zeichen entfernt wird.
rmv-Schnitt -c

Entfernen Sie die ersten vier Zeichen aus der Zeichenfolge

So entfernen Sie die ersten vier Zeichen aus der Zeichenfolge Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | schneiden -C 5-

Dieser Befehl gibt die Zeichenfolge ab dem fünften Zeichen aus, während die ersten vier Zeichen entfernt werden.
Entfernen Sie die ersten vier Zeichen aus der Zeichenfolge

Zeichenfolge zwischen 2. und 5. Zeichen drucken

So drucken Sie die Zeichenfolge Hallo, wie geht's dir? zwischen dem zweiten und fünften Zeichen , der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | schneiden -C 2-5

Dieser Befehl druckt die Zeichenfolge beginnend mit dem zweiten Zeichen bis zum fünften Zeichen, während die restlichen Anfangs- und Endzeichen entfernt werden.
rmv 2. und 5. c2

Letztes Zeichen aus String entfernen

So entfernen Sie das letzte Zeichen aus der Zeichenfolge Hallo, wie geht's dir? benutze die schneiden Befehl mit Rev , wie folgt:

$rauswerfen 'Hallo, wie geht's dir?' | Rev | schneiden -c2- | Rev

Dieser Befehl funktioniert, indem er zuerst die Zeichenfolge umkehrt, dann das erste Zeichen abschneidet und schließlich wieder umkehrt, um die gewünschte Ausgabe zu erhalten.
02Letztes Zeichen aus String entfernen

Entfernen Sie die letzten vier Zeichen aus der Zeichenfolge

Um die letzten vier Zeichen aus der Zeile zu entfernen Hallo, wie geht's dir? der Befehl wäre:

$rauswerfen 'Hallo, wie geht's dir?' | Rev | schneiden -c5- | Rev

Dieser Befehl funktioniert, indem er zuerst die Zeichenfolge umkehrt, dann die ersten vier Zeichen abschneidet und sie dann erneut umkehrt, um die gewünschte Ausgabe zu erhalten.
rmv letzte vier Zeichen

Erstes und letztes Zeichen aus String entfernen

So entfernen Sie das erste und letzte Zeichen aus der Zeichenfolge Hallo, wie geht's dir? benutze die schneiden Befehl mit Rev , wie folgt:

$rauswerfen 'Hallo Welt!' | schneiden -c2- | Rev | schneiden -c2- |Rev

Dieser Befehl funktioniert, indem er das erste Zeichen ausschneidet, dann die Zeichenfolge umkehrt und ihr erstes Zeichen ausschneidet und sie dann erneut umkehrt, um die gewünschte Ausgabe zu erhalten.
rmv zuerst und zuletzt

Zeichen aus String mit tr . entfernen

Der Befehl tr (kurz für translate) wird verwendet, um Zeichen aus einer Zeichenfolge zu übersetzen, zu quetschen und zu löschen. Sie können auch tr verwenden, um Zeichen aus einer Zeichenfolge zu entfernen.

Zu Demonstrationszwecken verwenden wir einen Beispielstring und leiten ihn dann an den tr-Befehl weiter.

Entfernen Sie alle Vorkommen von Zeichen

Mit dem Befehl tr können Sie alle Vorkommen von Klein- oder Großbuchstaben aus Ihrer Zeichenfolge entfernen. Um beispielsweise alle Vorkommen des Kleinbuchstabens „h“ aus der Zeichenfolge zu entfernen, lautet der Befehl:

$rauswerfen 'Hallo, wie geht's dir?' | NS -Dh

alle Vorkommen entfernen 01

Um alle Vorkommen des Großbuchstabens „H“ aus der Zeichenfolge zu entfernen, lautet der Befehl:

$rauswerfen 'Hallo, wie geht's dir?' | NS -Dh

Sie können auch interpretierte Sequenzen verwenden, um Klein- oder Großbuchstaben zu entfernen:

$rauswerfen 'Hallo, wie geht's dir?'| NS -D [:Oberer, höher:]

Vorkommnisse niedriger

$rauswerfen 'Hallo, wie geht's dir?'| NS -D [:untere:]

Vorkommnisse oben

Entfernen Sie alle Vorkommen von Klein- und Großbuchstaben

Sie können auch alle Vorkommen von Klein- und Großbuchstaben aus einer Zeichenfolge entfernen. Der folgende Befehl entfernt beispielsweise alle Vorkommen des Zeichens „h“, sowohl Klein- als auch Großbuchstaben.

$rauswerfen 'Hallo, wie geht's dir?' | NS -D‘hH’

Vorkommnisse oben und unten

Entfernen Sie alle Vorkommen von Zeichen in einem bestimmten Bereich

Um alle Vorkommen von Zeichen aus einer Zeichenfolge im spezifischen Bereich „d-h“ zu entfernen, lautet der Befehl:

$rauswerfen 'Hallo, wie geht's dir?' | NS -D 'd-h'

Dieser Befehl entfernt alle Zeichen im Bereich ‚d-h‘ (d,e,f,g,h) in der Zeichenfolge.
Ereignisse spezifischer Bereich

Abschluss

Unter Linux wird es immer mehr als eine Möglichkeit geben, eine einfache Aufgabe zu erledigen. Das gleiche gilt für das Entfernen von Zeichen aus einer Zeichenfolge. Dieser Artikel hat Ihnen vier verschiedene Möglichkeiten gezeigt, zusammen mit einigen Beispielen zum Entfernen unerwünschter Zeichen aus einer Zeichenfolge. Die Entscheidung, welches Tool Sie verwenden möchten, hängt von Ihren Vorlieben und vor allem davon ab, was Sie erreichen möchten.