Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So ersetzen Sie Zeichenfolgen in Dateien unter Linux

So ersetzen Sie Zeichenfolgen in Dateien unter Linux

青灯夜游
青灯夜游Original
2022-03-24 18:12:1726459Durchsuche

Unter Linux können Sie den Befehl sed verwenden, um Zeichenfolgen in Dateien zu suchen und zu ersetzen. Dieser Befehl verwendet den Stream-Bearbeitungsmodus und kann Daten in Textdateien basierend auf regulären Ausdrücken abgleichen und verarbeiten Regulärer Ausdruck, nach dem gesucht werden soll/Ersatzwert/g' Dateiname, an dem die Operation ausgeführt werden soll.

So ersetzen Sie Zeichenfolgen in Dateien unter Linux

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

Wenn Sie mit Textdateien arbeiten, müssen Sie höchstwahrscheinlich Zeichenfolgen in der Datei suchen und ersetzen. Unter Linux kann dies mit dem Befehl sed erfolgen, der hauptsächlich zum Ersetzen von Text in einer Datei verwendet wird. Was ist der Befehl

sed? Der Befehl sed stellt den Stream-Editor dar, der zum Ausführen grundlegender Textoperationen unter Linux verwendet wird. Es kann verschiedene Funktionen wie Suchen, Finden, Ändern, Einfügen oder Löschen von Dateien ausführen. Der Befehl sed verwendet den Stream-Bearbeitungsmodus und kann den Abgleich komplexer regulärer Ausdrücke durchführen. Der Befehl

sed gleicht und verarbeitet Daten in Textdateien basierend auf regulären Ausdrücken.

Es kann für folgende Zwecke verwendet werden:

Inhalte suchen und ersetzen, die einem bestimmten Format entsprechen.

  • Suchen und ersetzen Sie Inhalte, die dem angegebenen Format in der angegebenen Zeile entsprechen.

  • Suchen und ersetzen Sie Inhalte, die in allen Zeilen dem angegebenen Format entsprechen.

  • Suchen und ersetzen Sie zwei verschiedene Muster gleichzeitig.

  • sed-Befehl ersetzt Zeichenfolgen in Dateien

Gemeinsame sed-Syntax zum Ersetzen von Zeichenfolgen.

sed -i 's/Search_String/Replacement_String/g' Input_File
Dazu müssen wir zunächst die Sed-Syntax verstehen. Siehe Details.

sed: Dies ist ein Linux-Befehl.

  • -i: Dies ist eine Option des sed-Befehls. Was bewirkt sie? Standardmäßig druckt sed Ergebnisse auf der Standardausgabe. Wenn Sie diese Option mit sed hinzufügen, wird die Datei an Ort und Stelle geändert. Wenn Sie ein Suffix hinzufügen (z. B. -i.bak), wird eine Sicherung der Originaldatei erstellt.

  • s: Der Buchstabe s ist ein Substitutionsbefehl.

  • Search_String: Suche nach einer bestimmten Zeichenfolge oder einem regulären Ausdruck.

  • Replacement_String: Ersatzzeichenfolge.

  • g: globale Ersatzflagge. Standardmäßig ersetzt der Befehl sed das erste Vorkommen des Musters in jeder Zeile; andere Übereinstimmungen in der Zeile werden nicht ersetzt. Wenn jedoch die Ersatzflagge bereitgestellt wird, werden alle Übereinstimmungen ersetzt.

  • /: Trennzeichen.

  • Input_File: Der Dateiname zum Ausführen des Vorgangs.

  • Sehen wir uns einige gängige Beispiele für die Verwendung von sed-Befehlen zum Suchen und Konvertieren von Text in Dateien an.

  • Wir haben die folgenden Dateien zur Demonstration erstellt.
# cat sed-test.txt
1 Unix unix unix 23
2 linux Linux 34
3 linuxunix UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system

1) So finden und ersetzen Sie die „erste“ Musterübereinstimmung in jeder Zeile

Der folgende sed-Befehl ersetzt unix in der Datei durch linux. Dadurch wird nur die erste Instanz des Musters jeder Zeile geändert.

# sed 's/unix/linux/' sed-test.txt
1 Unix linux unix 23
2 linux Linux 34
3 linuxlinux UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system

2) So finden und ersetzen Sie das „N-te“ Vorkommen des Musters in jeder Zeile

Verwenden Sie /1, /2.../n und andere Zeichen in der Zeile, um die entsprechende Übereinstimmung zu ersetzen. Der folgende sed-Befehl ersetzt die zweite Instanz des Unix-Modus durch Linux in einer Zeile.

# sed 's/unix/linux/2' sed-test.txt
1 Unix unix linux 23
2 linux Linux 34
3 linuxunix UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system

3) So suchen und ersetzen Sie alle Musterinstanzen in jeder Zeile

Der folgende Befehl sed ersetzt alle Instanzen des Unix-Formats durch Linux, da g ein globales Ersetzungsflag ist.

# sed 's/unix/linux/g' sed-test.txt
1 Unix linux linux 23
2 linux Linux 34
3 linuxlinux UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system

4) So finden und ersetzen Sie alle übereinstimmenden Instanzen eines Musters beginnend mit dem „N-ten“ in einer Zeile

Der folgende Befehl sed ersetzt alle übereinstimmenden Instanzen beginnend mit dem „N-ten“ des Musters in a Linie.

# sed 's/unix/linux/2g' sed-test.txt
1 Unix unix linux 23
2 linux Linux 34
3 linuxunix UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system
Verwandte Empfehlungen: „

Linux Video Tutorial

Das obige ist der detaillierte Inhalt vonSo ersetzen Sie Zeichenfolgen in Dateien unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn