Mailinglist Archive: opensuse-de (5499 mails)

< Previous Next >
Re: Suche hilfe bei sed Au fruf für mehrere Dateien
  • From: David Haller <david@xxxxxxxxxx>
  • Date: Fri, 9 Jan 2004 21:22:03 +0100
  • Message-id: <20040109202203.GD5331@xxxxxxxxxxxxxxxxxx>
Hallo,

Am Fri, 09 Jan 2004, A.Loesch schrieb:
>Für die einzelne Datei würde ich das so machen:
> sed -e 's/datei1.html\" class=\"submenu/&UndNochwas/g' datei1.html

Das Muster waere mir ein bisserl zu "ungenau"...

>hier hab ich dann schon das erste Problem: ich will das wieder als
>datei1.html speicher, geht das anders als über eine 2. Datei und
>anschliessend umbenennen?

Nein.

>Jetzt zu vielen Dateien:
>Meine erste Idee war in etwa so:
>
> find *.html -type f | xargs sed -e 's/$1\"
>class=\"submenu/&UndNochwas/g' $1

1. Autsch. Das darf nicht laufen, es sei denn, du hast im aktuellen
Verzeichnis Unterverzeichnisse mit "irgendwas.html" im Namen --
oder keine einzige Datei, die 'irgendwas.html' heisst. Denn find
bekommt das *.html nie zu sehen, weil das die shell aufloest. Dich
hat bisher wohl nur gerettet, dass du keine .html im aktuellen
Verzeichnis hast, das *.html also von der shell zu nichts
expandiert wird, find also ohne Pfad aufgerufen wird und dann sein
Default nimmt und einfach im aktuellen Verzeichnis sucht.

2. Autsch. Wenn, dann musst du 'xargs -n 1' verwenden.

>Problem (das sehen die Experten wahrscheinlich direkt :) ) sed löst das $1
>nicht auf :(

1. sed loest $1 nie auf
2. die shell loest schon wg. den '' nicht auf
3. die shell ist bei der Konstruktion gar nicht beteiligt

>Neuer Versuch:
>
> find *.html -type f -exec sed -e 's/{}\"
>class=\"submenu/&UndNochwas/g' {} \;
>
>gleiches Prolbem sed löst das nicht auf :(

Siehe 1. und 2. oben.

==== UNGETESTET! ====
for f in `find . -type f -name '*.html' -maxdepth 1`;
do
sed -e "/$f/s/\(.*a href=\"$f\" class=\"\)submenu\(\".*\)/\1submenuUndNochwas\2/g" \
"$f" > "$f.tmp" && mv -f "$f.tmp" "$f"
done
====

-dnh

--
95: PGP-Keysigning-Party
Kultiges Zusammensitzen und gemeinsames Murmeln magischer
Zahlen. (Gert Döring)

< Previous Next >
Follow Ups
References