awk/shell-Rätsel

From: Marc Santhoff <M.Santhoff(at)web.de>
Date: Wed, 14 Jan 2009 06:56:05 +0100

Tag,

ich stolpere ja immer wieder über das "quoting" von Zeichen mit
besonderer Bedeutung zum Schutz vor der Interpretation durch die
ausführende shell. Diesmal habe ich einen Fall, den ich nicht lösen
kann:

#!/bin/sh

awk '{ gsub(/</, "\\&lt;"); \
        gsub(/>/, "\\&gt;"); \
        gsub(/&/, "\\&amp;"); \
        gsub(/"/, "\\&quot;"); \
        gsub(/\'/, "\\&apos;"); \
        print }' -

In der vorletzten Zeile bei dem einzelnen Hochkomma (single quote) weiß
ich nicht weiter. Die Shell findet es und deutet es als Ende des
awk-Programms. Der Backslash davor nützt nichts. Da nun die doppelten
Anführungszeichen für awk nötig sind, weiß ich nicht, wie ich das single
quote verhüllen muß, damit die shell das Programm korrekt an awk
weiterreicht und awk es lesen kann.

Fehlermeldung:

$ echo "irgendwas & mehr" | xmlencode
/home/marc/bin/xmlencode: 12: Syntax error: ")" unexpected

Das ganze dient dazu, beliebige Texte XML-gerecht aufzubereiten.

-- 
Marc Santhoff <M.Santhoff(at)web.de>
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 14 Jan 2009 - 07:21:10 CET

search this site