GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation d'AWK pour sélectionner des lignes avec une valeur spécifique dans une colonne spécifique

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...


Linux
  1. Utiliser Notify-send avec Cron ?

  2. Fichiers Cat avec répertoire ?

  3. Remplacement de chaîne à l'aide d'un dictionnaire ?

  4. Utiliser Word Wrap avec Mc ?

  5. Utilisation des couleurs avec printf

Commande AWK sous Linux avec des exemples

Commande Linux awk avec 10 exemples

Curl écrit la valeur d'un en-tête spécifique

utiliser awk avec des conditions de valeur de colonne

Comment remplir un fichier avec FF en utilisant dd ?

Comment soustraire des lignes (lignes) avec AWK