GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser Awk pour imprimer uniquement les lignes contenant 5 colonnes ?

J'ai un fichier qui contient des données délimitées par des tuyaux. Je veux imprimer les lignes qui n'ont que 5 colonnes.
J'ai essayé ce qui suit. Ça ne marche pas. Il imprime simplement toutes les lignes. Pourriez-vous s'il vous plaît me dire comment le faire correctement. Merci !

Contenu du fichier :

10413300|Maintenance Stock Clerk A - Michelle Hanley | Michelle Hanley (1680654)|Filled||10402112
10413301|Maintenance Stock Clerk - dasda|space||10402122
MOM Parkcentrum F;Alkotás u. 53.||34535|34345|asd
Business Center Naberezhnaya Tower" Block C"|||3453|ffg|345

Ici, j'essaie d'imprimer des lignes qui n'ont que 5 colonnes.

$ gawk -F "|" '{ if (NF=5) print $0 }' data3
10413300 Maintenance Stock Clerk A - Michelle Hanley   Michelle Hanley (1680654) Filled
10413301 Maintenance Stock Clerk - dasda space  10402122
MOM Parkcentrum F;Alkotás u. 53.  34535 34345 asd
Business Center Naberezhnaya Tower Block C   3453 ffg

La sortie montre que 2 lignes sur 4 ont plus de 5 colonnes.

$ gawk -F "|" '{print NF}' data3
6
5
5
6

Réponse acceptée :

NF=5 est une affectation, le test des valeurs se fait avec == . Comme ceci :

awk -F | 'NF==5' data3

Linux
  1. Linux - Comment utiliser l'espace d'échange uniquement pour les urgences ?

  2. Comment imprimer les lignes numéro 15 et 25 sur 50 lignes ?

  3. Comment autoriser uniquement des utilisateurs spécifiques non root à utiliser crontab

  4. Comment imprimer la troisième colonne à la dernière colonne ?

  5. Comment couper les premières n et dernières n colonnes ?

Comment utiliser la commande uniq pour traiter des listes sous Linux

Comment imprimer des lignes dupliquées dans un fichier texte sous Linux

Comment afficher la sortie Tail -f avec des couleurs en utilisant uniquement Awk et afficher le reste de la sortie?

Comment afficher uniquement des lignes différentes à l'aide de diff (bash)

Comment utiliser sed pour supprimer uniquement les doubles lignes vides ?

Comment utiliser sed pour supprimer les n dernières lignes d'un fichier