meine Kenntnisse in sed sind recht rudimentär und deswegen habe ich Schwierigkeiten bei Folgendem:
Ich habe eine recht umfangreiche Textdatei (Markdown-Text), bei der ich Überschriften von einzelnen Absätzen austauschen will. Ziel ist in der Textdatei ein Inhaltsverzeichnis mit HTML-Links anzulegen.
Die Dateien haben etwa folgenden Aufbau:
TOC:
TOC2:## Überschrift 1 mit Buchstaben Sonderzeichen und Leerzeichen
## Überschrift 2 mit Buchstaben Sonderzeichen und Leerzeichen
(...)
Mein Skript sieht so aus:## Überschrift 1 mit Buchstaben Sonderzeichen und Leerzeichen sowie HTML-Tags
## Überschrift 2 mit Buchstaben Sonderzeichen und Leerzeichen sowie HTML-Tags
(...)
#!/bin/bash
#
TOC=/dev/shm/toc
TOC2=/dev/shm/toc_fertig
#
for i in `cat ${TOC}`;do
sed -i 's/"${i}"/"`grep ${i} ${TOC2}`"/g' /dev/shm/markdown.txt;
done
Starte ich das Skript in der Konsole bekomme ich keine Rückmeldung, d.h. das Skript läuft, aber es beendet sich nicht und wirft auch keine Fehlermeldungen raus.
Spiele ich mit den Parametern ' und " im Skript herum hagelt es Fehlermeldungen in der Art sed: -e Ausdruck ... Unbekannte Option für »s«.
Ich weiß nun nicht, ob ich sed falsch aufrufe oder mein for-Konstrukt falsch ist.
Kann mich jemand auf den richtigen Weg bringen?
Danke!