Wichtige Information: Alle Texte auf dieser Website wurden aus unterschiedlichen Sprachen übersetzt. Bitte entschuldigen Sie die Qualität – diese kann niedriger sein als üblich. Grüße, Website-Administration. E-mail: [email protected]

Suchen und Ersetzen von Text in mehreren Dokumenten über die Befehlszeile

Wie bei vielen anderen Dingen in der Befehlszeile gibt es auch keinen Bestätigungsprozess. Sie sollten also sicherstellen, dass Ihre Syntax korrekt eingestellt ist, bevor Sie einen Befehl ausführen. Andernfalls müssen Sie möglicherweise einen anderen Fehler suchen und ersetzen, um Ihren Tippfehler zu reparieren.

Die grundlegende Befehlssyntax lautet wie folgt:

perl -pi -w -e’s / DIES / DAS / g; ‚ /path/to/files*.txt

Wenn Sie in einem Beispiel alle Instanzen von „Oger“ durch „Maisbrot“ in jeder .txt-Datei im Ordner „Dokumente“ ersetzen müssen, verwenden Sie den folgenden Befehl:

perl -pi-w -e’s / Oger / Maisbrot / g; ‚ ~ / Dokumente / *. Txt

Als Beispiel für das Finden und Ersetzen einer ganzen Phrase nehmen wir an, wir ersetzen den gesamten Satz „The Chocolate Factory“ durch „The Wizard of Oz“ in einer Gruppe von .txt-Dateien, beginnend mit „Films“ in den Dokumenten Verzeichnis:

perl -pi-w -e’s / Die Schokoladenfabrik / Der Zauberer von Oz / g; ‚ ~ / Dokumente / Filme * .txt

Das Suchen und Ersetzen ist sofort erledigt. Sie können die Änderung überprüfen, indem Sie cat und grep verwenden, um Folgendes zu überprüfen:

Katze ~ / Dokumente / Filme124.txt | grep „Zauberer von Oz“

Zugegebenermaßen ist dies ziemlich weit fortgeschritten, und ja, Batch-Suchen und Ersetzen durch mehrere Dokumente kann benutzerfreundlicher über GUI-Apps wie TextWrangler und BBEdit erfolgen, aber manchmal ist die Kommandozeile für schnelle Aufgaben wie diese und andere einfach schneller sind ähnlich, und es erfordert keine zusätzlichen Downloads zu verwenden.

Ein großer Daumen hoch zu Lifehacker für den exzellenten Trick.

Update: Der Befehl ’sed‘ ist eine weitere Möglichkeit, über die Befehlszeile schnell zu suchen und zu ersetzen. Covering sed ist meist ein Thema für einen anderen Artikel, aber die grundlegende Syntax von sed für diese Aufgabe ist ein wenig einfacher und damit leichter zu merken:

sed -is ‚/ THIS / THAT / g‘ /Pfad/to/files*.txt

Es gibt keinen richtigen oder falschen Weg, also ob Sie Perl oder Sed verwenden, ist eine Frage der persönlichen Präferenz.

Like this post? Please share to your friends: