So verwenden Sie den Befehl SED, um die Zeichenfolge in Dateien zu ersetzen
- 4346
- 693
- Henry Liebold
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.
- « So ändern Sie das Dokumentenwurzel der primären Domäne in WHM/CPANEL
- So richten Sie Sudo -Berechtigungen für den Benutzer unter Linux ein »