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 Werkzeuge, mit denen Sie Zeichen aus einer Zeichenfolge in Bash entfernen können. Dieser Artikel zeigt Ihnen, wie Sie diese Tools verwenden, um Zeichen aus einer Zeichenfolge zu entfernen.

Der Artikel behandelt die Ausführung der folgenden:

  • Entfernen Sie das Zeichen von SED von SED von SED
  • Entfernen Sie das Zeichen aus der Zeichenfolge mit awk
  • Entfernen Sie das Zeichen aus dem Schnitt mit Schnitt
  • Entfernen Sie das Zeichen von TR von der Zeichenfolge aus

Die in diesem Artikel gezeigten Befehle wurden in Ubuntu 20 durchgeführt.04 FOSSA FOSSA. Die gleichen Befehle können auch an anderen Linux -Verteilungen durchgeführt werden, bei denen die oben genannten Tools verfügbar sind. Wir werden die Standardanwendung verwenden, um die Befehle auszuführen. Sie können über die Tastaturverknüpfung von Strg+Alt+T auf die Terminalanwendung zugreifen.

Entfernen Sie Zeichen von SED von SED aus String

SED ist ein leistungsstarkes und praktisches Dienstprogramm zur Bearbeitung von Textströmen. Es handelt sich um einen nicht interaktiven Texteditor, mit dem Sie grundlegende Textmanipulationen in Eingabestreams durchführen können. Sie können SED auch verwenden, um unerwünschte Zeichen aus Strings zu entfernen.

Zu Demonstrationszwecken werden wir eine Probenzeichenfolge verwenden und dann an den SED -Befehl gehen.

Entfernen Sie das spezifische Zeichen aus der Zeichenfolge

Mit SED können Sie ein bestimmtes Zeichen aus einer Zeichenfolge entfernen. Zum Beispiel, um „H“ aus der Zeichenfolge zu entfernen “hallo, wie geht's dir?”Der Befehl wäre:

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

Dadurch wird nur das erste Ereignis von 'H' in der Zeichenfolge entfernt.

Verwenden Sie den folgenden Befehl, um alle Vorkommen von 'H' aus der Zeichenfolge zu entfernen:

$ 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 entfernt.

Entfernen Sie das erste Zeichen aus der Zeichenfolge

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

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

Wo (.) passt genau zu einem einzelnen Zeichen und (^) passt zu jedem Zeichen am Anfang der Zeichenfolge überein.

Entfernen Sie das letzte Zeichen aus der Zeichenfolge

Um das letzte Zeichen aus der Zeichenfolge zu entfernen “hallo, wie geht's dir?” Der Befehl wäre:

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

Wo (.) passt genau zu einem einzelnen Zeichen und ($) passt zu jedem Zeichen am Ende der Zeichenfolge ab.

Entfernen Sie das erste und letzte Zeichen von der Zeichenfolge

Um das erste und letzte Zeichen aus der Zeichenfolge zu entfernen “hallo, wie geht's dir?” Der Befehl wäre:

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

Entfernen Sie Zeichen von String mit awk

Awk ist eine leistungsstarke Skriptsprache, die für das Musteranpassung verwendet wird, zusammen mit der Textverarbeitung. AWK ermöglicht es Ihnen, den Text auf verschiedene Weise zu filtern und zu verwandeln. Sie können auch awk verwenden, um Zeichen aus Strings zu entfernen.

Zu Demonstrationszwecken werden wir eine Beispielzeichenfolge verwenden und dann an den awk -Befehl putzen.

Entfernen Sie das erste Zeichen aus einer Zeichenfolge

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

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

Wobei ($ 0) die gesamte Zielzeichenfolge ist und (2) die Charakter -Startposition ist. Der obige Befehl beseitigt das erste Zeichen, 'H,' Zeichennummer '1', und gibt die Zielzeichenfolge zurück, beginnend mit dem zweiten Zeichen 'E.''

Entfernen Sie die ersten beiden Zeichen aus der Zeichenfolge

Sie können auch eine bestimmte Anzahl von Zeichen vom Beginn einer Zeichenfolge entfernen. Zum Beispiel, um die ersten beiden Zeichen aus der Zeichenfolge zu entfernen “hallo, wie geht's dir?” Der Befehl wäre:

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

Der obige Befehl entfernen die ersten beiden Zeichen "Er" oder Zeichenzahlen "1 und 2" und gibt die Zielzeichenfolge zurück, die mit der Zeichennummer "3" oder "L" beginnt.''

Entfernen Sie das letzte Zeichen aus der Zeichenfolge

Um den letzten Charakter aus zu entfernen "hallo, wie geht's dir?” Der Befehl wäre:

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

Wo Länge ($ 0) -1 bedeutet Abzug '1'Aus der Gesamtcharakterlänge.

Der obige Befehl druckt die Zeichenfolge, die mit der Zeichennummer beginnt. '1' bis zu Länge ($ 0) -1 Um den letzten Charakter abzuziehen.

Es gibt '19'Zeichen (einschließlich Leerzeichen) in der obigen Zeichenfolge. Der Befehl funktioniert, indem alle Zeichen gedruckt werden und mit Charakter beginnen1"Und bis zum Charakter"18,"Beim Entfernen des letzten Charakters"19.''

Entfernen Sie die letzten beiden Zeichen aus String

Um die letzten beiden Zeichen aus zu entfernen “hallo, wie geht's dir?”Der Befehl wäre:

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

Wo Länge ($ 0) -2 bedeutet Abzug '2'Aus der Gesamtcharakterlänge.

Der obige Befehl druckt die Zeichenfolge, beginnend mit der Zeichennummer1"Und bis zu Charakternummer"Länge ($ 0) -2,'Um die letzten beiden Zeichen in der Zeichenfolge zu entfernen.

Entfernen Sie sowohl die ersten als auch die letzten Zeichen aus der Zeichenfolge

So entfernen Sie sowohl die ersten als auch die letzten Zeichen aus der Zeichenfolge “hallo, wie geht's dir?” Der Befehl wäre:

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

Wo Länge ($ 0) -2 bedeutet Abzug '2'Aus der Gesamtcharakterlänge.

Der obige Befehl druckt die Zeichenfolge, beginnend mit der Zeichennummer2"bis zur Charakternummer"Länge ($ 0) -2,'Um den ersten und letzten Charakter zu entfernen.

Entfernen Sie das Zeichen aus dem Schnitt mit Schnitt

Cut ist ein Befehlszeilen-Tool, das üblicherweise verwendet wird, um einen Teil des Textes aus einer Zeichenfolge oder Datei zu extrahieren und das Ergebnis in eine Standardausgabe zu drucken. Sie können diesen Befehl auch verwenden, um Zeichen aus einer Zeichenfolge zu entfernen.

Für Demonstrationszwecke verwenden wir eine Probenzeichenfolge und leiten Sie sie dann in den Befehl Cut ein.

Entfernen Sie das erste Zeichen aus der Zeichenfolge

Um das erste Zeichen aus der Saite zu entfernen, “hallo, wie geht's dir?” Der Befehl wäre:

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

In diesem Befehl wird die Zeichenfolge gedruckt, beginnend mit dem zweiten Zeichen, während das erste Zeichen entfernen wird.

Entfernen Sie die ersten vier Zeichen aus String

Um die ersten vier Zeichen aus der Zeichenfolge zu entfernen “hallo, wie geht's dir?” Der Befehl wäre:

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

In diesem Befehl wird die Zeichenfolge aus dem fünften Zeichen gedruckt, während die ersten vier Zeichen entfernt werden.

Drucken Sie die Zeichenfolge zwischen 2. und 5. Zeichen

Um die Zeichenfolge zu drucken “hallo, wie geht's dir?” zwischen dem zweiten und fünften Charakteren, Der Befehl wäre:

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

In diesem Befehl wird die Zeichenfolge gedruckt, beginnend vom zweiten Zeichen bis zum fünften Zeichen, während die verbleibenden Anfangs- und Endzeichen entfernt werden.

Entfernen Sie das letzte Zeichen aus der Zeichenfolge

Um das letzte Zeichen aus der Zeichenfolge zu entfernen “hallo, wie geht's dir?” Verwenden Sie das schneiden Befehl mit rev, folgendermaßen:

$ echo "Hallo, wie geht es dir?"| rev | cut -c2- | rev

Dieser Befehl funktioniert, indem zuerst die Zeichenfolge umgekehrt, dann das erste Zeichen geschnitten und schließlich erneut umgekehrt wird, um Ihnen die gewünschte Ausgabe zu erhalten.

Entfernen Sie die letzten vier Zeichen aus String

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 | cut -c5- | rev

Dieser Befehl funktioniert, indem zuerst die Zeichenfolge umgekehrt, dann die ersten vier Zeichen geschnitten und dann erneut umgekehrt wird, um Ihnen die gewünschte Ausgabe zu erhalten.

Entfernen Sie die ersten und letzten Zeichen aus der Zeichenfolge

Um die ersten und letzten Zeichen aus der Zeichenfolge zu entfernen “hallo, wie geht's dir?” benutze die schneiden Befehl mit rev, folgendermaßen:

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

Dieser Befehl eignet sich durch Schneiden des ersten Zeichens, das Umkehren der Saite und das Schneiden seines ersten Zeichens und das Umkehr, um es erneut umzukehren, um Ihnen die gewünschte Ausgabe zu geben.

Entfernen Sie das Zeichen von TR von der Zeichenfolge aus

Der TR -Befehl (kurz für die Übersetzung) 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.

Für Demonstrationszwecke verwenden wir eine Probenzeichenfolge und leiten Sie sie dann in den TR -Befehl ein.

Entfernen Sie alle Ereignisse des Charakters

Mit dem Befehl TR können Sie alle Vorkommen von Kleinbuchstaben oder Großbuchstaben aus Ihrer Zeichenfolge entfernen. Zum Beispiel wäre der Befehl: zum Beispiel alle Vorkommen des Kleinbuchstabencharakters 'H' aus der Zeichenfolge aus der Zeichenfolge zu entfernen:

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

In ähnlicher Weise wäre der Befehl, um alle Vorkommen des Großbuchstabens 'H' aus der Zeichenfolge zu entfernen:

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

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

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

Entfernen Sie alle Vorkommen von Kleinbuchstaben und Großbuchstaben

Sie können auch alle Vorkommen sowohl von Kleinbuchstaben als auch Großbuchstaben aus einer Zeichenfolge entfernen. Zum Beispiel wird der folgende Befehl alle Vorkommen des Zeichens 'H, sowohl in Kleinbuchstaben als auch Großbuchstaben beseitigen.

$ 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, wäre der Befehl:

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

In diesem Befehl werden alle Zeichen im Bereich 'D-H' (D, E, F, G, H) in der Zeichenfolge entfernt.

Abschluss

In Linux wird es immer mehr als eine Möglichkeit geben, einen einfachen Job zu erledigen. Gleiches gilt für das Entfernen von Zeichen aus einer Zeichenfolge. Dieser Artikel hat Ihnen vier verschiedene Möglichkeiten gezeigt, zusammen mit einigen Beispielen für das Entfernen unerwünschter Zeichen aus einer Zeichenfolge. Die Entscheidung, welches Werkzeug alle verwenden sollen, hängt von Ihren Vorlieben und vor allem von dem ab, was Sie erreichen möchten.