GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare Awk per stampare solo righe contenenti 5 colonne?

Ho un file che contiene dati delimitati da pipe. Voglio stampare le righe che hanno solo 5 colonne.
Ho provato quanto segue. Non funziona. Stampa semplicemente tutte le linee. Potresti per favore farmi sapere come farlo correttamente. Grazie!

Contenuto del file:

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

Qui sto cercando di stampare righe che hanno solo 5 colonne.

$ 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

L'output mostra che 2 righe su 4 hanno più di 5 colonne.

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

Risposta accettata:

NF=5 è un compito, il test dei valori viene eseguito con == . In questo modo:

awk -F | 'NF==5' data3

Linux
  1. Linux:come utilizzare lo spazio di scambio solo per le emergenze?

  2. Come stampare le righe numero 15 e 25 su ogni 50 righe?

  3. Utilizzo di awk per stampare tutte le colonne dall'ennesima all'ultima

  4. Come tagliare le prime n e le ultime n colonne?

  5. Come visualizzare solo righe diverse usando diff (bash)

Come utilizzare il comando uniq per elaborare gli elenchi in Linux

Come stampare righe duplicate in un file di testo in Linux

Come eseguire l'output in coda -f con i colori utilizzando solo Awk e mostrare il resto dell'output?

Come ottenere solo il numero di righe di un file

Stampa solo parole con lettere maiuscole (Linux)

Come sottrarre righe (linee) con AWK