PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : text verzeichnisweit suchen und ersetzen?



multispreader
12.12.04, 23:20
:o
ich bin gerade dabei,
die pfadangaben einiger html-formulare von absoluten zu relativen pfadangaben umzukorrigieren.

wie kann ich den text in allen dateien in einem verzeichnis,
also den verzeichnisweiten text durchsuchen und die entsprechenden passagen ersetzen?
geht das auch irgendwie mit OpenOffice.org?
(es müsste doch möglich sein nicht nur den text markieren und durchsuchen zu lassen,
sondern diese anweisung für den text im gesamten verzeichnis geben zu können.)

moedule
13.12.04, 02:53
sed ist dein freund

sed s/pfad_der_weg_soll// datei


also ungefähr sowas:
nehmen wir an die dateien liegen in /home/bubek/homepage und dessen unterverzeichnisse

find /home/bubek/homepage -name '*.html' -exec sed s:/home/bubek/homepage/:: {} \;

im sed ist der trenner / durch trenner : doppelpunkt ersetzt ... machts einfacher (schöner? naja!)

EDIT: naja und jetzt hab ich natürlich nicht weitgenug gedacht: jetzt wird alles auf stdout ausgegeben ....
moe

multispreader
13.12.04, 10:07
sed ist dein freund

sed s/pfad_der_weg_soll// datei


also ungefähr sowas:
nehmen wir an die dateien liegen in /home/bubek/homepage und dessen unterverzeichnisse

find /home/bubek/homepage -name '*.html' -exec sed s:/home/bubek/homepage/:: {} \;

im sed ist der trenner / durch trenner : doppelpunkt ersetzt ... machts einfacher (schöner? naja!)

EDIT: naja und jetzt hab ich natürlich nicht weitgenug gedacht: jetzt wird alles auf stdout ausgegeben ....
moe
...willst du mich vollends verwirren?

was soll denn nun in die konsole eingegeben werden?
am besten gleich mit aktuellem beispiel:
in dem verzeichnis /Desktop/jgst311/formular/g1
liegen die dateien 01.html bis 99.html welche bearbeitet werden sollen.
(
"<img src="http://www.sammlung.de/jpg"
soll zu
"../../jpg"
umgewandelt werden.)

ich wechsel in der konsole zur datei, welche ich durchforsten will, und gebe dort:
sed 's/http://www.sammlung.de/jpg/../../jpg g'01.html>01(n).html
ein.
ergebnis:
sytaxerror near unexpected token `('

scheint so nicht zu funktionieren (schon die schrägstriche, welche ja scheibar als bestandteil der sed-anweisung und nicht als zu behandelnden text eingelesen werden...)

weiss jemand rat?

moedule
13.12.04, 12:48
sed s~http://www.sammlung.de/jpg/~../../jpg/~ 01.html > 01n.html

einfach die trenner beim sed (default /) durch andere zeichen ersetzen (ich denke beliebig), hier z.B. tilden ~

sollte doch eigentlich tun

moe