2014-12-09 18 views
5

Ho problemi con la corrispondenza della colonna specifica con il comando grep. Ho un file di prova (test.txt) come questo ..Colonna specifica partita con comando grep

Bra001325  835  T  13  c$c$c$c$c$cccccCcc  !!!!!68886676 
Bra001325  836  C  8  ,,,,,.,,  68886676 
Bra001325  841  A  6  ,$,.,,. BJJJJE 
Bra001325  866  C  2  ,.  HJ 

e voglio estrarre tutte quelle linee che ha un numero 866 nella seconda colonna. Quando uso grep comando sto ottenendo tutte le linee che contiene il numero di quel numero

grep "866" test.txt 

Bra001325  835  T  13  c$c$c$c$c$cccccCcc  !!!!!68886676 
Bra001325  836  C  8  ,,,,,.,,  68886676 
Bra001325  866  C  2  ,.  HJ 

Come posso abbinare colonna specifica con il comando grep?

risposta

10

provare a fare questo:

$ awk '$2 == 866' test.txt 

Non c'è bisogno di aggiungere {print}, il comportamento predefinito di awk è quello di stampare su una condizione true.

con :

$ grep -P '^\S+\s+866\b' * 

Ma possibile stampare i nomi dei file troppo & è molto più robusto di qui:

$ awk '$2 == 866{print FILENAME":"$0; nextfile}' * 
+0

Grazie. Mi stavo chiedendo c'è un modo per fare 'grep'? Lo chiedo perché ho molti file e quando provo ad usare 'awk', stampa solo le linee che corrispondono al modello in quei file. Comunque con 'grep' otterrai il nome del file seguito dalla linea che corrisponde al modello. – upendra

+0

Vedere il mio POST aggiornato –

+0

Corretto errore in grep –

Problemi correlati