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

Verwenden Sie den SED-Befehl zum Suchen und Ersetzen von Zeichenfolgen in Dateien - Wie wird diese Aufgabe unter Ubuntu ausgeführt?

Das sed steht für Stream-Editor. Es liest die angegebene Datei und modifiziert die Eingabe gemäß einer Liste von sed-Befehlen.

Standardmäßig wird die Eingabe auf den Bildschirm geschrieben, aber Sie können die Aktualisierung der Datei erzwingen.

Der Linux-Befehl Sed (Stream EDitor) wird zum Suchen, Finden und Ersetzen oder Einfügen und Löschen von Wörtern und Zeilen in einer Textdatei verwendet.

Der häufigste Anwendungsfall des Sed-Befehls ist das Suchen und Ersetzen von Zeichenfolgen in Dateien. Wenn Sie den Sed-Befehl verwenden, können Sie Dateien bearbeiten, ohne sie zu öffnen.

Hier bei LinuxAPT helfen wir unseren Kunden im Rahmen unserer Server Management Services regelmäßig bei der Durchführung von Abfragen im Zusammenhang mit Linux-Servern.

In diesem Zusammenhang werden wir untersuchen, wie der Sed-Befehl verwendet wird, um Zeichenfolgen in Dateien im Ubuntu 20.04-System zu finden und zu ersetzen.


Suchen und Ersetzen auf Ubuntu

Standardmäßig ist Sed in den meisten Linux-Distributionen installiert. Sie können die Installation von Sed auf Ihrem Linux-System überprüfen, indem Sie Folgendes ausführen:

$ sed --v

Die grundlegende Syntax für die Verwendung des Sed-Befehls zum Suchen und Ersetzen von Text lautet:

$ sed -i 's/Search_pattern/Replacement_pattern/g' FILE

Wo:

-i:Diese Option veranlasst den Sed-Befehl, Dateien an Ort und Stelle zu bearbeiten, anstatt die Ausgabe auf die Standardausgabe zu schreiben.

s:Es steht für Ersatz.

/ /:Trennzeichen.

g:Es ist ein globales Ersatz-Flag.

DATEI:Die Datei, die Sie mit dem Sed-Befehl bearbeiten möchten.


Es wird dringend empfohlen, Suchmuster, Ersetzungsmuster und andere Argumente in Anführungszeichen zu setzen.

Hier ist zum Beispiel eine Textdatei, die zur Demonstration verwendet wurde:

567 Test test test
test /bin/zsh linuxapt.com testbar 789

Führen Sie den folgenden Befehl aus, um alle „test“-Wörter durch „linux“-Wörter zu ersetzen:

$ sed -i 's/test/linux/g' test.txt

Wenn Sie das Flag g nicht verwenden, wird nur das erste Vorkommen des Suchmusters in jeder Zeile ersetzt:

$ sed -i 's/test/linux/' test.txt

Um das Suchmuster unabhängig von der Groß-/Kleinschreibung zu machen, verwenden wir das I-Flag:

$ sed -i 's/test/linux/gI' test.txt

In der Linux-Welt werden wir auf viele Anwendungsfälle stoßen, die Trennzeichen in Textdateien enthalten.

Wir müssen den Backslash \ verwenden, um die Trennzeichen auszubrechen.

Um beispielsweise /bin/zsh durch /usr/bin/bash zu ersetzen, führen Sie Folgendes aus:

$ sed -i 's/\/bin\/zsh/\/usr\/bin\/bash/g' test.txt


Rekursives Suchen und Ersetzen

In vielen Fällen möchten Sie Verzeichnisse rekursiv nach Dateien durchsuchen, die eine bestimmte Zeichenfolge enthalten, und diese Zeichenfolge in allen Dateien ersetzen.

Beispielsweise sucht der folgende Befehl die Zeichenfolge „apt“ und ersetzt sie durch „road“ in allen Dateien im aktuellen Verzeichnis.

$ find . -type f -exec sed -i 's/apt/road/g' {} +

Wenn die Dateinamen Leerzeichen enthalten, verwenden wir die Option -print0:

$ find . -type f -print0 | xargs -0 sed -i 's/way/road/g'

Um eine Zeichenfolge nur in Dateien mit einer bestimmten Erweiterung zu suchen und zu ersetzen, führen Sie Folgendes aus:

$ find . -type f -name "*.java" -print0 | xargs -0 sed -i 's/apt/road/g'



Ubuntu
  1. So verwenden Sie den Befehl zum Herunterfahren von Linux in Ubuntu 18.04 und CentOS 7

  2. So verwenden Sie den Grep-Befehl, um Text in Dateien zu finden

  3. Wie verwendet man Sed, um eine mehrzeilige Zeichenfolge zu ersetzen?

  4. So verwenden Sie den String-Befehl in Ubuntu

  5. So ersetzen Sie eine Zeichenfolge in mehreren Dateien in der Linux-Befehlszeile

So finden Sie Dateien in der Ubuntu-Befehlszeile

So installieren und verwenden Sie PhotoRec, um gelöschte Dateien in Ubuntu 20.04 wiederherzustellen

So finden und löschen Sie doppelte Dateien in Ubuntu mit Fdupes

So installieren und verwenden Sie R unter Ubuntu

So installieren und verwenden Sie den Exa-Befehl unter Ubuntu 20.04

So verwenden Sie Sed zum Suchen und Ersetzen einer Zeichenfolge in einer Datei