[linux-l] woerter in verschiedenen Zeile ersetzen in mehrere Dateien

Ivan Villanueva iv at artificialidea.com
Do Jun 9 17:38:44 CEST 2005


Hi Sven,

On Wed, Jun 08, 2005 at 02:20:11PM +0200, Sven Guckes wrote:
> * 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/.../.../"

Danke. Ich bin der Meinung, XML, Regular Expressions, etc. sind gut für
Computer aber nicht für Menschen.

> ganze in noch weniger zeichen machen?
Nein.

> optimierung auf schnelligkeit
Nein

> oder nur auf lesbarkeit?
Genau

> andere tools kennenlernen?
Das ist was ich wollte.

> remember the GIGO princciple!
Meinst Du bezogen auf meine Frage und Deine Antwort ?

Iván.



Mehr Informationen über die Mailingliste linux-l