Hur få sed att ignorera delar av text?
Postat: 22 jun 2012, 11:55
Exempel:
Önskat resultat:
Det vill säga, hur får jag sed att strunta i det som är inom citattecken? Givetvis kan det finnas alltifrån 0 till ∞ många ”citat” i texten (och det behöver ju inte vara just printf-satser) och de kan befinna sig lite varstans på raden, men alltid i par.
Nästa steg är sedan att förhindra ändringar efter ”//” på en rad och det svåraste av allt (antar jag), att förhindra att sed ändrar saker mellan ”/*” och ”*/”, som ju kan befinna sig på olika rader.
Syfte
Tänkte, i experimentsyfte, försöka skriva ett litet skript som tillåter mig att använda mer läsbart format på C-kod, exempelvis ”Variabel²” istället för ”pow(Variabel,2)”, svenska bokstäver i variabelnamn och så vidare. Skriptet ska då konvertera till giltig C och spara i en ny fil innan gcc tar över och kompilerar den nya filen. Ganska långt kvar på det projektet, om det nu ens blir av, men någonstans måste man börja och detta är mitt första hinder…
Kod: Markera allt
$ echo 'printf("a×b=%f",a×b);' | sed 's/×/\*/g'
printf("a*b=%f",a*b);
$
Kod: Markera allt
printf("a×b=%f",a*b);
Nästa steg är sedan att förhindra ändringar efter ”//” på en rad och det svåraste av allt (antar jag), att förhindra att sed ändrar saker mellan ”/*” och ”*/”, som ju kan befinna sig på olika rader.
Syfte
Tänkte, i experimentsyfte, försöka skriva ett litet skript som tillåter mig att använda mer läsbart format på C-kod, exempelvis ”Variabel²” istället för ”pow(Variabel,2)”, svenska bokstäver i variabelnamn och så vidare. Skriptet ska då konvertera till giltig C och spara i en ny fil innan gcc tar över och kompilerar den nya filen. Ganska långt kvar på det projektet, om det nu ens blir av, men någonstans måste man börja och detta är mitt första hinder…