So verwenden Sie den Befehl SED, um die Zeichenfolge in Dateien zu ersetzen

So verwenden Sie den Befehl SED, um die Zeichenfolge in Dateien zu ersetzen

Haben Sie jemals eine Situation, in der Sie in vielen Dateien ein Wort oder Satz ersetzen müssen?? Sie können es kopieren und einfügen, oder vielleicht gibt es ein vorhandenes Skript, das den Job erledigen kann. Aber wie wäre es, wenn Sie es nur durch ein anderes Wort oder einen anderen Satz ersetzen müssen, woanders? Sie könnten Fund verwenden, aber das wäre zu generisch und erfordern ein Skript für diese Aufgabe. Und was ist, wenn Sie nicht einmal wissen, welches Wort oder der Satz Sie finden und ersetzen müssen? Wie wäre es dann mit SED? Wenn Sie mit der Unix -Befehlszeile nicht vertraut sind, ist SED ein Stream -Editor. Es ist ein einfacher Texteditor, der aus Standardeingaben liest und Bearbeitungsvorgänge im Stream ausführt, wie er gelesen wird. Es wird üblicherweise für die Suche und Ersetzung der Funktionalität in Skripten verwendet.

In diesem Artikel zeigen wir Ihnen einige Beispiele für die Verwendung von SED, um die Suche durchzuführen, und ersetzt Text in Dateien.

Suchen und ersetzen Sie die Zeichenfolge in Dateien

Wenn Sie nur eine einfache Suche und Ersetzung durchführen müssen, können Sie die folgende Syntax verwenden:

sed -i 's/string_to_find/string_to_replace/' Datei1 Datei2 Filen 

Hier:

  • -ich: Dieses Flag zeigt SED an, dass Ihre Eingabedatei eine der nach dem Befehl angegebenen Dateien ist.
  • String_to_find: Dies ist die Zeichenfolge, nach der Sie in den Dateien suchen möchten.
  • STRING_TO_REPLACE: Dies ist die Zeichenfolge, die Sie in den Dateien den String What_to_Find ersetzen möchten.
  • Datei1 Datei2 Filen: Dies ist die Liste der Dateien, die SED durchsucht und ersetzt.

Der folgende Befehl sucht nach allen Zeichenfolgen „Hallo“ in der Willkommen.txt Datei. Ersetzen Sie es dann durch eine neue Zeichenfolge "Howdy" in derselben Datei.

sed -i 's/hello/howdy/g' Willkommen.txt  

Sie können auch eine Sicherung der Originaldatei erstellen, bevor Sie Änderungen mit vornehmen -ich gefolgt von einer Erweiterung. Zum Beispiel:

sed -i.Backup 's/Hallo/Howdy/G' Willkommen.txt  

Dies erstellt eine Datei willkommen.txt.Sicherung im aktuellen Verzeichnis mit dem Original -Dateiinhalt.

Ersetzen Sie den Text rekursiv in mehreren Dateien

Der folgende Befehl ist hilfreich, um Zeichenfolgen in mehreren Dateien gleichzeitig in einem Verzeichnis /OPT /DOCs zu ersetzen. Hier navigieren Sie zu allen Dateien unter dem definierten Verzeichnis und führen den SED -Befehl nacheinander aus.

find/opt/docs/-type f -exec sed -i 's/hello/howdy/g' ;  

Text ersetzen, ohne die Originaldatei zu beeinflussen

Wenn Sie keine Änderungen in Ihrer ursprünglichen Datei vornehmen und neue Dateien mit geänderten Zeichenfolgen erstellen möchten, verwenden Sie den folgenden Befehl.

sed 's/hello/howdy/g' Willkommen.txt> willkommen_2.txt  

Dieser Befehl erstellt eine neue Datei Willkommen_2.txt mit modifiziertem Text. Die Originaldatei mit bleiben unverändert.

Abschluss

Ein SED -Befehl ist ein leistungsstarkes Tool, mit dem der Text in Dateien bearbeitet werden kann. Es ist nützlich, wenn Sie eine Situation haben, in der Sie eine Zeichenfolge in vielen Dateien finden und ersetzen müssen. Sie könnten Fund verwenden, aber das wäre zu generisch und erfordern ein Skript zu schreiben. Und was ist, wenn Sie nicht einmal wissen, welches Wort oder der Satz Sie finden und ersetzen müssen? Die Verwendung von SED ist eine bessere Lösung.