ratzfatz
15-01-2007, 17:02
Hi habe ein awk script geschrieben welches in einem Text 2 TAGs suchen soll und die Zeileninhalte zw. den beiden TAGs ausgeben soll:
found=1
{
if ( index($0,"Tag1") )
found=0
if ( index($0,"Tag2"))
found=1
if (found==1)
print "to be deleted"
else
print "$0"
}
Falls das erste Tag gefunden wurde sollen die zeilen dazwischen ausgegeben werden ($0) und ausserhalb der beiden Tags sollen die Zeilen mit "to be deleted" ersetzt werden.
Das Ergebnis ist allerdings das urspuengliche file immer noch komplett ausgegeben wird und nach jeder Zeile das "to be deleted" eingefuegt wird. Im Grunde scheint es also zu funktionieren nur wird eben das urspruengliche file komplett mit kopiert :(
ich starte mein file mit awk -f Programname input.file und schreibe den output auf die console.
found=1
{
if ( index($0,"Tag1") )
found=0
if ( index($0,"Tag2"))
found=1
if (found==1)
print "to be deleted"
else
print "$0"
}
Falls das erste Tag gefunden wurde sollen die zeilen dazwischen ausgegeben werden ($0) und ausserhalb der beiden Tags sollen die Zeilen mit "to be deleted" ersetzt werden.
Das Ergebnis ist allerdings das urspuengliche file immer noch komplett ausgegeben wird und nach jeder Zeile das "to be deleted" eingefuegt wird. Im Grunde scheint es also zu funktionieren nur wird eben das urspruengliche file komplett mit kopiert :(
ich starte mein file mit awk -f Programname input.file und schreibe den output auf die console.