Suchen und Ersetzen via Linux-Kommandozeile ist einfach: Einfach ein Kommando wie:
sed -i -e "s/(suchstring)/(ersetzstring)/" "(dateiname)"
absetzen und schon klappt es. Etwas kompliziert wird es, wenn die Zeichenketten (strings) variabel sind und potentiell Steuerzeichen oder einfache Schrägstriche enthalten. Dann scheitert das Kommando!
Einfacher Test
Hier ein ganz einfacher Test, alls klappt wie gewünscht:
1 2 3 4 5 6 7 8 9 10 |
|
KO-Test
Probleme treten auf, wenn Punkte im Suchmuster sind. Diese werden als Teil einer Regex interpretiert. Dadurch wird dann auch “uli” und “uwe” ersetzt:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Eigentlich hätte ich als Ergebnis gerne:
1 2 3 |
|
Maskieren der Zeichenketten
Wenn die Zeichenketten maskiert werden, dann klappt es:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Links
Historie
- 2023-11-29: Erste Version