PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AWK Fehlermeldung "file is binary"



anja77777
02-09-2004, 09:52
Hallo!

Warum bringt AWK die Fehlermeldung

"awk: Line 2 (NR=3): file is binary"

bei einer Text-Datei (ich meine hier die datei1 - siehe den Aufruf unten)?

Ich rufe ein Skript test.awk auf, und zwar so:

awk -f test.awk <datei1 >>datei2

Das ganze nicht unter Linux, aber ich soll diese Skripte mit dem MKS Toolkit zum laufen bringen.

So sieht mein Skript test.awk aus:


BEGIN {rn=100000}
/Ich bin ein Muster/ {rn=NR+1}
NR==rn { print $0 }


Was hier gemacht wird, ist mir eigentlich klar (es wird zuerst die Variable rn initialisiert, danach wird nach dem Suchmuster "Ich bin ein Muster" gesucht, anschliessend die Variable rn bekommt die Nummer der Zeile nach der Zeile, wo Suchmuster gefunden wurde. Am Ende wird dann die Zeile nach der Zeile mit Suchmuster ausgegeben (in die datei2).

Für Eure Hinweise bin ich sehr dankbar.

RapidMax
02-09-2004, 21:06
Kann es sein, dass das awk-Script, oder die Eingabe-Datei folgende Zeichen enthalten: 0 (\0), Unicode, weitere Steuerzeichen (< 32)?

Zum Script: Ich würde das einfacher lösen:

/Das ist ein Muster/{getline; print $0;}
Bzw. für das exakt gleiche Verhalten:

/Das ist ein Muster/{if (getline) print $0;}

Gruss, Andy