Die Datei, auf der Sie das Skript ausführen, hat DOS-Zeilenenden. Es kann sein, dass es auf einem Windows-Rechner erstellt wurde.
Verwenden Sie dos2unix
um es in eine Unix-Textdatei umzuwandeln.
Alternativ führen Sie es durch tr
:
tr -d '\r' <input.txt >input-unix.txt
Verwenden Sie dann input-unix.txt
mit Ihrem ansonsten korrekten awk
Code.
Zum Ändern von awk
Code anstelle der Eingabedatei:
awk -F, '$7 == "-99\r"' input.txt >output.txt
Dabei wird der Wagenrücklauf am Zeilenende berücksichtigt.
Oder,
awk -F, '$7 + 0 == -99' input.txt >output.txt
Dies erzwingt, dass die 7. Spalte als Zahl interpretiert wird, wodurch der Wagenrücklauf "entfernt" wird.
Ebenso
awk -F, 'int($7) == -99' input.txt >output.txt
würde auch den \r
entfernen .
awk -F, '{if($7==-99)print $0}'
werde das tun...