manuel321
Goto Top

SED bzw String ersetzen

Ich hab das Problem das ich aus einer Datei einen String in viele andere Dateien ersetzen muss. Ich hab schon mal versucht etwas zu programmieren bzw auf vielen Seiten nach vorhandenen Codes gesucht aber noch keinen erfolg gehabt.
Vielleicht hat ja einer von euch schon mal einen string in dateien ersetzt und kann mir einen Tipp geben.

Content-Key: 39507

Url: https://administrator.de/contentid/39507

Printed on: April 19, 2024 at 10:04 o'clock

Mitglied: 8644
8644 Sep 06, 2006 at 10:04:43 (UTC)
Goto Top
Mahlzeit,

bemühe mal die Suche im Forum! Solche Sachen wie Text ersetzen bringen enorm viele Treffer! Interessant wäre auch zu wissen, in welcher Sprache du das ganze umsetzen möchtest! Wenn du dich hier im Bereich Batch und Shell mal umschaust, findest du evtl. schon eine fertige Lösung.

Psycho
Member: manuel321
manuel321 Sep 06, 2006 at 10:18:00 (UTC)
Goto Top
Jo, hab ich mal gemacht aber irgendwie komm ich net weiter, also ich will mit Linux, Shell
Strings aus php und shtml Dateien ersetzen, jeweils immer eine Zeile. Ich hab auch schon mal was programmiert und schon auf diversen Websiten nach Hilfen geschaut, aber bin leider noch net fündig geworden.
Mitglied: 11078
11078 Sep 06, 2006 at 10:21:29 (UTC)
Goto Top
Hallo,

schließe mich Psycho an, habe aber noch einen zusätzlichen Tipp: PERL

Besonders wenn die Anforderungen an das Finden des zu ersetzenden Textes alles andere als trivial sind, bieten PERL und seine Regular Expressions einen guten Ansatz.

Allerdings steht PERL ja nicht immer zur Verfügung...


Wenn es eine einmalige Sache (und nicht tausende Dokumente) sein soll, kannst Du das Problem evtl. auch mit einem Editor wie JEdit lösen. Der beherrscht auch Regular Expressions, hat eine gute "Ersetzen"-Funktion und kann diese auf alle geöffneten Dokumente gleichzeitig anwenden.

Suche auf jeden Fall auch nach dem Stichwort "Regular Expressions"!


Gruß,
Tim
Mitglied: 8644
8644 Sep 06, 2006 at 10:32:07 (UTC)
Goto Top
also ich will mit Linux, Shell...
Das sind doch schon mal Aussagen, die weiter helfen!
Ich hab auch schon mal was programmiert
Immer her damit!

Psycho
Member: manuel321
manuel321 Sep 06, 2006 at 11:30:36 (UTC)
Goto Top
also hier mal das was ich schon hab


echo "Beginne mit der Konvertierung"

SRC='<img src="images/pfarrei/nentershausen.jpg" border="0" >'
#SRC="\<img\ src\=\"images\/pfarrei\/nentershausen\.jpg\"\ border\=\"0\"\>"
echo "$SRC"

DEST="\<img src=\"\/design2006\/images\/portal\_bistum.jpg\"\ border\=\"0\"\ alt\=\"Titelbild\"\ title\=\"Titelbild\"\ class\=\"imgBorder\"\/\>"
echo "$DEST"

sed 's/'"$SRC"'/'"$DEST"'/g' nentershausen.shtml

exit

Das bekomme ich jedoch wenn ich es starte

Beginne mit der Konvertierung
<img src="images/pfarrei/nentershausen.jpg" border="0">  
\<img src="\/design2006\/images\/portal\_bistum.jpg"\ border\="0"\ alt\="Titelbild"\  title\="Titelbild"\ class\="imgBorder"\/\>   
sed: -e expression #1, char 28: unknown option to `s'   
epnbmt:/tmp # 


[Edit Biber] Als "code" umformatiert (soweit möglich) [/Edit]
Mitglied: 8644
8644 Sep 06, 2006 at 11:36:53 (UTC)
Goto Top
Ich weiss nicht, ob das jetzt ein Problem von mir ist oder ein allgemeines, aber ich sehe keine Bilder! Ist aber beim Posten von code eigentlich auch nicht nötig!

Psycho
Member: manuel321
manuel321 Sep 06, 2006 at 12:04:04 (UTC)
Goto Top
ne da sollten auch keine bilder sein, komm wahrscheinlich dadurch das da .jpeg steht
Mitglied: 11078
11078 Sep 06, 2006 at 12:07:24 (UTC)
Goto Top
Hallo,


die Syntax ist doch vereinfacht so:

sed 's/altes Muster/neues Muster/' datei


Müsste es bei Dir dann nicht so heißen:
sed 's/$SRC/$DEST/g' nentershausen.shtml

Probier es auch mal aus ohne Variablen und stattdessen mit ausgeschriebenem alten und neuem Muster.

By-the-way: "nentershausen" --> das Nentershausen in Hessen?


Gruß,
Tim
Member: manuel321
manuel321 Sep 06, 2006 at 13:38:16 (UTC)
Goto Top
jo danke, das probier ich mal und ja das ist in Hessen =)