BASH-Programmierung

Entfernen von Zeichen aus String in Bash

Entfernen von Zeichen aus String in 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:

Die in diesem Artikel gezeigten Befehle wurden in Ubuntu 20 ausgeführt.04 Fossa. Dieselben Befehle können auch auf anderen Linux-Distributionen ausgeführt werden, auf denen die oben genannten Tools verfügbar sind. 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 Textstreams. 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 einen Beispielstring und leiten ihn dann an den Befehl seded.

Spezifisches Zeichen aus String entfernen

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

$ echo "Hallo, wie geht es dir?" | sed 's/h//'

Dadurch wird nur das erste Vorkommen von 'h' in der Zeichenfolge entfernt.

Um alle Vorkommen von 'h' aus der Zeichenfolge zu entfernen, verwenden Sie den folgenden Befehl:

$ echo "Hallo, wie geht es dir?" | sed 's/h//g'

Wo G steht für global. Es wird alle Vorkommen von 'h' in der Zeichenfolge entfernen.

Erstes Zeichen aus String entfernen

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

$ echo "Hallo, wie geht es dir?" | sed 's/^.//' Datei

Wo (.) entspricht genau einem einzelnen Zeichen und (^) entspricht einem beliebigen Zeichen am Anfang der Zeichenfolge.

Letztes Zeichen aus String entfernen

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

$ echo "Hallo, wie geht es dir?" | sed 's /.$//'

Wo (.) entspricht genau einem einzelnen Zeichen und ($) entspricht einem beliebigen Zeichen am Ende der Zeichenfolge.

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:

$ echo "Hallo, wie geht es dir?" | sed 's/^.//;s/.$//'

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.

Erstes Zeichen aus einer Zeichenfolge entfernen

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

$ echo "Hallo, wie geht es 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.'

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 „Hallo wie geht's dir?” der Befehl wäre:

$ echo "Hallo, wie geht es 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.'

Letztes Zeichen aus String entfernen

Um das letzte Zeichen aus „Hallo wie geht's dir?” der Befehl wäre:

$ echo "Hallo, wie geht es dir?" | awk ' print substr( $0, 1, length($0)-1 ) '

Wo 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 das letzte Zeichen abstreifen.

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.'

Entfernen Sie die letzten beiden Zeichen aus der Zeichenfolge

Um die letzten beiden Zeichen aus „Hallo wie geht's dir?“ Der Befehl wäre:

$ echo "Hallo, wie geht es dir?" | awk ' print substr( $0, 1, length($0)-2 ) '

Wo 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 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:

$ echo "Hallo, wie geht es dir?" | awk 'print substr($0, 2, length($0) - 2)'

Wo 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.

Zeichen aus String entfernen mit cut Using

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:

$ echo "Hallo, wie geht es dir?" | Schnitt -c 2-

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

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:

$ echo "Hallo, wie geht es dir?" | Schnitt -c 5-

Dieser Befehl druckt die Zeichenfolge beginnend mit dem fünften Zeichen, während die ersten vier Zeichen entfernt werden.

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:

$ echo "Hallo, wie geht es dir?" | Schnitt -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.

Letztes Zeichen aus String entfernen

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

$ echo "Hallo, wie geht es dir?" | rev | cut -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.

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:

$ echo "Hallo, wie geht es dir?" | rev | Schnitt -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.

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 Schnitt Befehl mit Rev, wie folgt:

$ echo "Hallo Welt!" | Schnitt -c2- | rev | Schnitt -c2- |rev

Dieser Befehl funktioniert, indem er das erste Zeichen ausschneidet, dann die Zeichenfolge umkehrt und das erste Zeichen ausschneidet und dann wieder umkehrt, um die gewünschte Ausgabe zu erhalten.

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.

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:

$ echo "Hallo, wie geht es dir?" | tr -d h

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

$ echo "Hallo, wie geht es dir?" | tr -d H

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

$ echo "Hallo, wie geht es dir?"| tr -d [:obere:]

$ echo "HALLO, wie geht es dir??"| tr -d [:lower:]

Entfernen Sie alle Vorkommen von Klein- und Großbuchstaben

Sie können auch alle Vorkommen von Klein- und Großbuchstaben aus einer Zeichenfolge entfernen. Zum Beispiel entfernt der folgende Befehl alle Vorkommen des Zeichens 'h', sowohl Klein- als auch Großbuchstaben.

$ echo "Hallo, wie geht es dir?" | tr -d 'hH'

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:

$ echo "Hallo, wie geht es dir?" | tr -d 'd-h'

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

Fazit

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 ab und, was noch wichtiger ist, von dem, was Sie erreichen möchten.

OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...