Das manuelle Bearbeiten von Textdateien unter Linux kann mühsam sein. Aus diesem Grund ist es gut zu wissen, wie Sie Textzeichenfolgen in Dateien mithilfe der Befehlszeile schnell ersetzen können. Wenn Sie Linux-Neuling sind und nicht wissen, wie es geht, können wir Ihnen helfen! Folgen Sie uns, wie wir Ihnen zeigen, wie Sie eine Textzeichenfolge in einer Datei unter Linux ersetzen!
Textstring in Datei ersetzen – sed
Das sed-Tool ist der beste Weg, um eine Textzeichenfolge in einer Datei unter Linux zu ersetzen. Der Grund? Es ist einfach zu bedienen und macht seinen Job sehr gut. Sed ist normalerweise auf 99% der Linux-Betriebssysteme vorinstalliert, sodass es nicht installiert werden muss, um es zu verwenden.
Das Ersetzen einer Textzeichenfolge in einer Datei durch Sed erfolgt mit dem Befehl sed -i. So verwenden Sie es. Öffnen Sie zunächst ein Terminalfenster auf dem Linux-Desktop. Sie können ein Terminalfenster öffnen, indem Sie Strg + Alt + T auf der Tastatur drücken.
Sobald das Terminalfenster geöffnet und einsatzbereit ist, schreiben Sie sed -i in die Terminal-Eingabeaufforderung. Dies ist der Beginn des Ersetzungsbefehls.
sed -i
Fügen Sie nach dem Schreiben des Befehls sed -i ein Anführungszeichen ‚ hinzu. Dieses Anführungszeichen ist wichtig, da der gesamte Text, der durch sed -i ersetzt wird, nach diesem Zeichen beginnen muss.
sed -i '
Schreiben Sie nach dem ersten ‚-Zeichen s/. Das s/ steht direkt vor dem vorhandenen Text, den Sie mit sed ersetzen möchten.
sed -i 's/
Nachdem s/ in die Eingabeaufforderung der Terminal-Befehlszeile geschrieben wurde, ist es an der Zeit, sed mitzuteilen, welcher Text in der Datei ersetzt werden soll. In diesem Beispiel ersetzen wir das Wort „Apfel“.
sed -i 's/apple
Wenn der zu ersetzende Text in den Befehl geschrieben wird, besteht der nächste Schritt darin, den neuen Text einzugeben, der ihn ersetzt. In diesem Beispiel ersetzen wir „Äpfel“ durch „Orangen“.
sed -i 's/apples/oranges
Sobald der zu ersetzende Text in den Befehl geschrieben ist (Orangen), schließen Sie den Befehl mit g/ ab. Das g/ weist sed an, alle Textinstanzen (Äpfel) durch den neuen Text (Orangen) zu ersetzen. Es sollte wie im Beispiel unten aussehen.
Hinweis: Wenn Sie nicht jeden Text in der Datei ersetzen möchten (z. B. Äpfel durch Orangen), entfernen Sie das g und lassen Sie es stattdessen als sed -i ’s/apples/oranges/‘ ausführen.
sed -i 's/apple/orange/g'
Schließlich teilen Sie sed mit, in welcher Datei sich der Text befindet, der ersetzt werden muss. In diesem Beispiel ist fruit.txt im Home-Verzeichnis das Ziel.
sed -i 's/apples/oranges/g' ~/fruit.txt
Drücken Sie die Eingabetaste, um den Befehl auszuführen und Ihre Textzeichenfolge in der Datei zu ersetzen.
Textstring in Datei ersetzen – Perl
Eine andere Möglichkeit, einen Textstring in einer Datei unter Linux zu ersetzen, ist die Programmiersprache Perl. Perl wird häufig für die Textverarbeitung verwendet, kann also natürlich Textstrings in Dateien austauschen und ist perfekt für diesen Anwendungsfall.
Stellen Sie zunächst sicher, dass Perl auf Ihrem Linux-PC installiert ist. Bei den meisten Linux-Betriebssystemen ist Perl installiert. Wenn Sie es jedoch nicht haben, sehen Sie auf der Hilfeseite Ihres Betriebssystems nach, wie Sie es zum Laufen bringen.
Die Verwendung von Perl zum Ersetzen von Textzeichenfolgen in einer Datei erfordert das Terminal. Öffnen Sie ein Terminal auf dem Linux-Desktop, indem Sie Strg + Alt + T auf der Tastatur drücken. Oder suchen Sie im App-Menü nach „Terminal“ und starten Sie es so.
Sobald das Terminalfenster geöffnet und einsatzbereit ist, geben Sie zunächst perl -pe in die Befehlszeilenaufforderung ein. Der Befehl perl -pe wird benötigt, um eine Textzeichenfolge in einer Datei zu ersetzen.
perl -pe
Wenn Sie perl -pe in die Eingabeaufforderung des Terminals schreiben, müssen Sie mit dem ersten Anführungszeichen ‚ beginnen. Diese Markierung teilt Perl mit, wo sich der Textersetzungsbereich im Befehl befindet.
perl -pe '
Nach dem ersten Anführungszeichen ‚ fügen Sie s/ hinzu, gefolgt von der Textzeichenfolge, die Sie ersetzen möchten, und einem weiteren /. Um beispielsweise „Äpfel“ in der Datei fruit.txt zu ersetzen, schreiben Sie den folgenden Text.
perl -pe 's/apples/
Nachdem Sie die Wörter ausgeschrieben haben, die Sie ersetzen möchten, fügen Sie das Wort hinzu, das den vorhandenen Text ersetzt. Wenn Sie beispielsweise „äpfel“ in „fruit.txt“ durch „oranges“ ersetzen möchten, fügen Sie „oranges“ nach perl -pe ’s/apples/ hinzu, damit es wie perl -pe ’s/apples/oranges/ aussieht .
perl -pe 's/apples/oranges/
Sobald beide Textstrings im Befehl enthalten sind, müssen Sie die Eingabedatei angeben, die Perl verwendet. Wenn Sie beispielsweise Text in der Datei „fruit.txt“ ersetzen möchten, müssen Sie dies im Befehl angeben.
Hinweis: In diesem Beispiel befindet sich die Datei „fruit.txt“ im Home-Verzeichnis (~/). Stellen Sie sicher, dass Sie „~/fruit.txt“ durch den Speicherort Ihrer Textdatei ersetzen, damit der Befehl funktioniert.
perl -pe 's/apples/oranges/' ~/fruit.txt
Nachdem die Eingabedatei (die Datei, die Sie mit Perl ändern) dem Befehl hinzugefügt wurde, sollte der Befehl wie unten dargestellt aussehen.
perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt
Wenn der obige Befehl ausgeführt wird, wird die Textzeichenfolge durch den neuen von Ihnen angegebenen Text ersetzt. In unserem Beispiel haben wir „Äpfel“ durch „Orangen“ ersetzt. Geben Sie den folgenden Befehl ein, um die Änderungen anzuzeigen.
cat fruit.txt