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.
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.
Gemeinsame sed-Syntax zum Ersetzen von Zeichenfolgen. sed -i 's/Search_String/Replacement_String/g' Input_File
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.
# 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
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
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
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
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
“
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!