sed

Post Reply
Message
Author
andre

sed

#1 Post by andre »

hi,
ich hab ein kleines problem. ich habe eine script-datei in der saemtliche zeilen von "/*" bis "*/" geloescht werden sollen.
zb.:
"
a=1
b=2
c=3
/*
demo
erwrw
*/
d=4
"

daraus soll dann
"
a=1
b=2
c=3
d=4
"
werden...

mir reicht der reine sed-befehl...

vielen dank,
andre

Jochen

Re: sed

#2 Post by Jochen »

Hmm, ist das wirklich die einzige Möglichkeit, wie so was geschrieben können sein soll? Dann wäre es einfach (wenn das jetzt im Board auch eine Backslash-Orgie gibt):<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">sed -e '/\<!--no-->/\<!--no-->*/,/\<!--no-->*\<!--no-->//d' input-file >output-file</font><hr></pre></blockquote>Wenn Kommentare auch mit Werten zusammen in einer Zeile stehen können, schmeisst Dir das obige Skript zuviel weg. Probier's mal vorsichtig und melde Dich noch mal.

Jochen

andre

Re: sed

#3 Post by andre »

hi,
es klappt soweit, thnxs <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
(wie muesste ich das problem loesen wenn in der zeile noch wichtiger code stehen wuerde?
zb:
"
a=1 /* test */
/* test */ b=1
c=1 /*
test */ d=1
"

danke,
andre

Jochen

Re: sed

#4 Post by Jochen »

Oha, hier würde ich nicht mehr sed nehmen. Das wird mindestens kompliziert! Statt dessen habe ich mich da an das flex-Tutorial erinnert, da gibt es ein Beispiel, das genau macht, was Du möchtest (mit ein wenig Anpassung):<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">/* Datei: decomment.fl */
%x comment
%%

"/*" BEGIN(comment);

<comment>[^*]* /* eat anything that's not a '*' */
<comment>"*"+[^*/]* /* eat up '*'s not followed by '/'s */
<comment>"*"+"/" BEGIN(INITIAL);
</font><hr></pre></blockquote>Übersetzen bitte mit

flex -odecomment.c decomment.fl
gcc -O decomment.c -o decomment -lfl

Dann hast Du ein Binary "decomment", das solche Dateien von stdin liest und die Version ohne Kommentare nach stdout schreibt. Aufruf wäre also

decomment <input-file >output-file

Jochen

andre

Re: sed

#5 Post by andre »

hi,
thnxs <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

cu,
andre

Post Reply