[linux-l] woerter in verschiedenen Zeile ersetzen in mehrere Dateien
Sven Guckes
maillist-belug at guckes.net
Mi Jun 8 14:20:11 CEST 2005
* Ivan Villanueva <iv at artificialidea.com> [2005-06-08 13:09]:
> ich wollte das Wort "Examples" in "Online Examples" in mehrere .html Dateien
> ersetzen. Nur manchmal steht "Online" in einer Zeile und "Examples" in
> der Nächste (mit zusätzlichen Tabs und/oder Leer-Zeichen.). Z.B.:
>
> xxx
> xxx Online
> Examples xxx
> xxx
>
> Nachdem ich viel Doku gelesen habe bin ich auf diese Idee gekommen:
> vim -c "bufdo %s/Online\(\_s\+\)Examples/Online\1Replaces/g" -c "wa" -c "q" **/*.html
> was wunderbar funktioniert, wenn man vim und die zsh hat.
> Meine Frage: geht es einfacher?
"anders" geht es bestimmt. zB so:
sed -i "s/\(Online\)\n *\(Examples\)/\1 \2/" **/*html(.)
find -type f -name *.html | xargs sed -i "s/.../.../"
aber definiere mal "einfacher"!
welches mass consultierst du?
was ist eigentlich genau dein ziel? das
ganze in noch weniger zeichen machen?
optimierung auf schnelligkeit
oder nur auf lesbarkeit?
bestimmt tools verwenden oder
andere tools kennenlernen?
remember the GIGO princciple!
Sven
Mehr Informationen über die Mailingliste linux-l