Le fichier sur lequel vous exécutez le script comporte des fins de ligne DOS. Il se peut qu'il ait été créé sur une machine Windows.
Utilisez dos2unix
pour le convertir en un fichier texte Unix.
Vous pouvez également l'exécuter via tr
:
tr -d '\r' <input.txt >input-unix.txt
Utilisez ensuite input-unix.txt
avec votre awk
par ailleurs correct code.
Pour modifier le awk
code au lieu du fichier d'entrée :
awk -F, '$7 == "-99\r"' input.txt >output.txt
Cela prend en compte le retour chariot en fin de ligne.
Ou,
awk -F, '$7 + 0 == -99' input.txt >output.txt
Cela force la 7ème colonne à être interprétée comme un nombre, ce qui "supprime" le retour chariot.
De même,
awk -F, 'int($7) == -99' input.txt >output.txt
supprimerait également le \r
.
awk -F, '{if($7==-99)print $0}'
va faire ça...