Batch Text Ersetzung

455
nobody

Ich brauche ein Werkzeug, das eine Textdatei öffnen und Zeichen in einer Liste durch andere Zeichen in einer Liste ersetzen kann.

Zum Beispiel:

Nehmen wir an, ich habe eine Liste von "aA", "aB" und möchte "aA" durch "AA" ersetzen.

Was ist ein Softwareprogramm, das dies problemlos tun könnte?

1
Praktisch jede Skriptsprache kann damit problemlos umgehen: AutoIt, Python, Perl usw. MaQleod vor 12 Jahren 0
Ich habe es mit Python ausprobiert, aber die Logik hat nicht richtig funktioniert. Jetzt brauche ich ein Werkzeug. nobody vor 12 Jahren 0
Probieren Sie notepad ++ aus. Sie können den Batch-String für viele Dateien ersetzen: http://www.makeuseof.com/tag/how-to-find-and-replace-words-in-multiple-files/, oder Sie können Ihren Python posten Code und habe einen Mod, verlagere dies auf StackOverflow.com und sie werden dir da draußen helfen. MaQleod vor 12 Jahren 0

2 Antworten auf die Frage

4
psusi

Genau dafür wurde das sedProgramm entwickelt.

Nun, wenn er bedeutet, die Zeichen in Kleinbuchstaben in Großbuchstaben umzuwandeln, dann vielleicht mit sed nicht so einfach. Wenn er nur einige Details wie aA in AA ändert, dann ja. barlop vor 12 Jahren 0
Oder "Ex". Oder in der Tat "tr", wenn die Verwendung von "sed" zum Ändern des Falles als hart angesehen wird (was bei GNU "sed" zumindest wirklich nicht der Fall ist). JdeBP vor 12 Jahren 0
1
Joe Internet

Als Perl-Einzeiler, um die Funktionalität von sed zu replizieren ...

perl -pe " s/aA/AA/g; s/aB/AB/g; " < input.txt > output.txt 

Dies wird diese input.txt drehen ...

aA, aA, aA, aA, aA aB, aB, aB, aB, aB 

in diese output.txt ...

AA, AA, AA, AA, AA AB, AB, AB, AB, AB 

Dies geschieht durch Ersetzung des regulären Ausdrucks ...

s(ubstitute)/this-original-string/with-this-new-string/g(lobally)