GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwendung des Linux-Befehls sed mit Beispielen

Sed, kurz für Stream EDitor, ist ein Befehl, der verwendet wird, um Texttransformationen und -manipulationen an einer Datei durchzuführen. Einige dieser Transformationen umfassen das Suchen und Ersetzen von Text. Mit dem Linux-Befehl sed können Sie Textdateien manipulieren und bearbeiten, ohne sie überhaupt zu öffnen. In diesem Tutorial lernen Sie, wie Sie Textdateien mit dem Befehl sed bearbeiten.

Sed-Befehlssyntax für Linux

$ sed  {OPTIONS} filename

In diesem Tutorial verwenden wir linuxgeek.txt Datei als unsere Referenzdatei.

# cat linuxgeek.txt

Ausgabe

1. Ersetzen oder Ersetzen einer Zeichenkette

In den meisten Fällen wird der Befehl sed zum Ersetzen von Textzeichenfolgen verwendet.

Der folgende Befehl ersetzt „Linux “ mit „Unix ‘.

# sed 's/Linux/Unix/' linuxgeek.txt
  • Die s im Befehl ist der Ersetzungsindikator.
  • Der / sind die Trennzeichen
  • Linux ist der Suchbegriff
  • unix ist der Ersatzbegriff

Standardmäßig ersetzt der Befehl sed nur das erste Vorkommen in einer Zeile . Die nachfolgenden Vorkommen werden nicht ersetzt oder ersetzt.

Ausgabe

2. Substituieren oder Ersetzen des n-ten Vorkommens in einer Zeile

Wenn Sie das zweite Auftreten einer Zeichenfolge in einer Zeile ersetzen möchten, verwenden Sie den /2 Flagge wie gezeigt.

# sed 's/Linux/Unix/2' linuxgeek.txt

Ausgabe

3. Ersetzen oder Ersetzen aller Vorkommen des Musters in einer Datei

Um alle Vorkommen des Suchmusters in der Datei zu ersetzen, verwenden Sie /g Flagge. Der /g ist der globale Ersatz.

# sed 's/Linux/Unix/g' linuxgeek.txt

Ausgabe

4. Ersetzen oder Ersetzen aller Vorkommen einer Zeichenfolge nur in einer bestimmten Zeile

Wenn Sie alle Vorkommen eines Strings in einer bestimmten Zeile ersetzen möchten, z. B. in Zeile 2, verwenden Sie die folgende Syntax

# sed '2 s/Linux/Unix/g' linuxgeek.txt

Ausgabe

5. Ersetzen oder Ersetzen einer Zeichenfolge in einem bestimmten Zeilenbereich

Wenn Sie den Zeilenbereich angeben möchten, in dem die Zeichenfolge ersetzt wird, verwenden Sie das unten gezeigte Beispiel. Das Beispiel weist die Ersetzung an, ab den Zeilen 1 - 3 zu erfolgen

# sed '1,3 s/Linux/Unix/g' linuxgeek.txt

Ausgabe

Außerdem können Sie wie gezeigt Text von einer bestimmten Zeile bis zum Ende der Datei ersetzen

# sed '2,$ s/Linux/Unix/g' linuxgeek.txt

Der Befehl ersetzt alle Vorkommen von der zweiten Zeile bis zur letzten Zeile der Datei.

Ausgabe

6. Setzen Sie das erste Zeichen jedes Wortes in Klammern

Das folgende Beispiel zeigt, wie Sie jedes erste Zeichen eines Wortes in einer Zeile in Klammern setzen können.


$ echo "Hey Guys, Welcome To Linux Operating System" | sed 's/\(\b[A-Z]\)/\(\1\)/g'

Ausgabe

7. Zeilen aus einer Datei löschen

Sie können auch den Linux-Befehl sed verwenden, um Zeilen in einer Datei zu löschen.

Beispiele

Syntax:


$ sed 'nd' filename.txt

Um die dritte Zeile in der Datei zu löschen, führen Sie

aus
$ sed '3d' linuxgeek.txt

Ausgabe

Um eine Reihe von Zeilen zu löschen, z. B. von Zeile 3 bis Zeile 5 , führen Sie den folgenden Befehl aus:

$ sed '3,5d' linuxgeek.txt

Ausgabe


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux-Sortierungsbefehl mit Beispielen

  3. Der Linux-Sed-Befehl:Verwendung und Beispiele

  4. Linux Tee-Befehl mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Datumsbefehl in Linux mit Verwendungsbeispielen

Diff-Befehl in Linux mit Beispielen

Linux-CD-Befehl mit Beispielen

Linux-IP-Befehl mit Verwendungsbeispielen

Linux-IP-Befehl mit Beispielen

Verwendung des Linux-mv-Befehls mit Beispielen