Hallo,
Ich sitze an einem Makefile für ein kleines Übersetzungsprojekt. Gegen sind XML-Dateien, die mittels xml2po aus den gnome-doc-utils übersetzt werden sollen. Dabei existiert nur ein Unterverzeichnis, was alle Übersetzungen enthält. Die Dateien heißen also
xyz.de.po
Nun macht xml2po beim Rückformatieren in XML den Fehler, dass der Dateiname in lang="" eingesetzt wird. Im Prinzip steht dann in jeder übersetzten XML Datei:
<book id="xyz-guide" lang="yxz-guide.de">
Das wollte ich das gerne mit sed korrigieren, so dass ich
<book id="xyz-guide" lang="de">
erhalte. Der betreffende Ausschnitt aus dem Makefile (die Tabs sind hier durch Leerzeichen ersetzt wurden):
translate: for guide in $(GUIDES); do \ for lang in $(LANG); do \ $(XML2PO) -e -p $${guide}.$${lang}.po \ -o ../$${guide}_$${lang}.tmp ../$${guide}.$(XMLSUFFIX) ; \ sed -e 's!$${guide}.$${lang}!$${lang}!' \ < ../$${guide}_$${lang}.tmp \ > ../$${guide}_$${lang}.$(XMLSUFFIX) ; \ rm ../$${guide}_$${lang}.tmp ; \ done ; \ done
Wichtig sind die drei Zeilen ab 'sed ...'. Wieso ersetzt mir sed nicht den betreffenden Ausdruck? Zugegeben bin ich nicht der große Könner auf der Konsole. Ein Verweis auf ein Schriftstück, dass meinen Fehler aufklärt, wäre schon hilfreich.
MfG Daniel