Das manuelle Editieren von Textdateien in Linux kann eine Herausforderung darstellen. Daher ist es sehr nützlich, Methoden zu kennen, um Textpassagen in Dateien über die Befehlszeile schnell und effizient auszutauschen. Wenn Sie noch nicht viel Erfahrung mit Linux haben, zeigen wir Ihnen gerne, wie Sie Text innerhalb von Dateien ersetzen können.
Text in Dateien ersetzen – mit `sed`
Das Tool `sed` ist eine hervorragende Wahl für das Ersetzen von Text in Linux-Dateien. Es ist einfach anzuwenden und erledigt diese Aufgabe sehr zuverlässig. Zudem ist `sed` auf den meisten Linux-Systemen standardmäßig installiert und muss nicht erst eingerichtet werden.
Das Ersetzen von Text mit `sed` erfolgt durch den Befehl `sed -i`. Um ihn zu nutzen, öffnen Sie zunächst ein Terminalfenster. Dies gelingt durch die Tastenkombination Strg + Alt + T.
Sobald das Terminal bereitsteht, beginnen Sie mit der Eingabe von `sed -i`. Dies bildet den Grundstein für den Ersetzungsbefehl.
sed -i
Nach dem Befehl `sed -i` fügen Sie ein einfaches Anführungszeichen ‚ hinzu. Dieses Anführungszeichen kennzeichnet den Startbereich für den Text, der durch `sed -i` ersetzt werden soll.
sed -i '
Nach dem ersten Anführungszeichen geben Sie `s/` ein. Dieses `s/` signalisiert, dass der folgende Text derjenige ist, der ersetzt werden soll.
sed -i 's/
Nachdem `s/` eingegeben ist, muss `sed` mitgeteilt werden, welcher Text in der Datei ausgetauscht wird. In unserem Beispiel tauschen wir das Wort „Apfel“ aus.
sed -i 's/Apfel
Nun, da der zu ersetzende Text im Befehl steht, folgt der neue Text, der den alten ersetzen wird. Hier ersetzen wir „Apfel“ durch „Orange“.
sed -i 's/Apfel/Orange
Ist der Ersetzungstext (Orange) im Befehl, schließen wir den Befehl mit `g/` ab. `g/` bewirkt, dass `sed` alle Instanzen von „Apfel“ durch „Orange“ ersetzt. Das Ergebnis sollte so aussehen:
Wichtig: Wenn nicht jeder Text in der Datei ersetzt werden soll (z.B. jedes „Apfel“ durch „Orange“), entfernen Sie `g` und nutzen Sie stattdessen `sed -i ’s/Apfel/Orange/’`.
sed -i 's/Apfel/Orange/g'
Abschließend teilen Sie `sed` mit, in welcher Datei sich der zu ersetzende Text befindet. In diesem Fall ist es `fruit.txt` im Home-Verzeichnis.
sed -i 's/Apfel/Orange/g' ~/fruit.txt
Drücken Sie die Eingabetaste, um den Befehl auszuführen und den Text in der Datei zu ersetzen.
Text in Dateien ersetzen – mit `Perl`
Eine alternative Methode, um Text in Linux-Dateien zu ersetzen, ist die Programmiersprache `Perl`. `Perl` ist sehr gut für Textbearbeitung geeignet und somit ideal für das Ersetzen von Textpassagen in Dateien.
Zuerst prüfen Sie, ob `Perl` auf Ihrem Linux-Rechner installiert ist. In der Regel ist `Perl` auf den meisten Linux-Distributionen vorinstalliert. Sollte dies bei Ihnen nicht der Fall sein, finden Sie in den Hilfeartikeln Ihres Betriebssystems Informationen zur Installation.
Um `Perl` für das Ersetzen von Text zu nutzen, benötigen Sie ein Terminal. Starten Sie dieses durch die Tastenkombination Strg + Alt + T oder suchen Sie es im Anwendungsmenü.
Sobald das Terminal bereit ist, geben Sie `perl -pe` in die Eingabeaufforderung ein. Der Befehl `perl -pe` ist für die Textersetzung innerhalb von Dateien notwendig.
perl -pe
Nach der Eingabe von `perl -pe` im Terminal, beginnen Sie mit dem einfachen Anführungszeichen ‚. Dieses Zeichen kennzeichnet den Beginn des Textbereiches, der bearbeitet wird.
perl -pe '
Nach dem ersten Anführungszeichen fügen Sie `s/` hinzu, gefolgt von dem zu ersetzenden Text und einem weiteren `/`. Um beispielsweise „Äpfel“ in der Datei `fruit.txt` zu ersetzen, schreiben Sie:
perl -pe 's/Äpfel/
Nach dem Text, der ersetzt werden soll, fügen Sie den Text hinzu, der stattdessen eingesetzt wird. Wenn Sie zum Beispiel „Äpfel“ in `fruit.txt` durch „Orangen“ ersetzen möchten, ergänzen Sie nach `perl -pe ’s/Äpfel/’` „Orangen“, sodass es wie `perl -pe ’s/Äpfel/Orangen/’` aussieht.
perl -pe 's/Äpfel/Orangen/
Nachdem beide Texte im Befehl stehen, müssen Sie die Eingabedatei angeben, die `Perl` verwendet. Wenn Sie beispielsweise Text in `fruit.txt` ersetzen möchten, muss dies dem Befehl hinzugefügt werden.
Hinweis: In diesem Beispiel befindet sich `fruit.txt` im Home-Verzeichnis (~/). Ersetzen Sie `~/fruit.txt` durch den Pfad zu Ihrer Textdatei, damit der Befehl funktioniert.
perl -pe 's/Äpfel/Orangen/' ~/fruit.txt
Nachdem die Eingabedatei hinzugefügt wurde, sollte der Befehl wie folgt aussehen:
perl -pe 's/Äpfel/Orangen/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt
Nachdem Sie den obigen Befehl ausgeführt haben, ist der Text ersetzt. In diesem Beispiel haben wir „Äpfel“ durch „Orangen“ ersetzt. Um die Änderungen zu sehen, geben Sie folgenden Befehl ein:
cat fruit.txt