PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AWK noob Frage (suchen+ersetzem)



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.

cdp_xe
24-01-2007, 23:38
Ich verstehe dein Problem nicht. Willst Du nun die Spalten oder die Zeilen dazwischen ausgeben?

cdp_xe
24-01-2007, 23:43
... also nachdem ich dein posting ca. 5 mal las, glaube ich verstanden zu haben, was dein problem ist. die lösung wäre dann das found=1 in ein BEGIN zu schreiben.


BEGIN {
found = 1
}
{
(dein restlicher Code)
}

ich hoffe, das hilft dir weiter.

--steffen