shell script para imprimir linhas se houver um valor na coluna 2

1
1 2 3 4
3 1 4 2
1 4 3 2
4 2 1 3

Como posso imprimir todas as linhas, nas quais há um 2 na segunda coluna.

    
por Kevin Parker 08.10.2013 / 11:14

1 resposta

7

Usando awk (ou seu primo gawk ):

gawk '$2==2 {print $0}' inputfile

Em awk as colunas são indicadas por $ , com $1 a primeira coluna, $2 o segundo, etc. A linha inteira é dada por $0 . Portanto, este exemplo diz: se a coluna 2 for igual a 2, imprima a linha inteira.

Editar: conforme descrito abaixo:

gawk '$2==2' inputfile 

é o suficiente. Para imprimir as linhas com 2 na segunda coluna e 4 na última utilização $NF , que significa o número de campos (ou seja, a última coluna):

gawk '$2==2 && $NF==4'  inputfile
    
por 08.10.2013 / 11:19