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
sed
Re: sed
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
Jochen
Re: sed
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
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
Re: sed
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
%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
Re: sed
hi,
thnxs <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
cu,
andre
thnxs <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
cu,
andre