script de shell para imprimir filas si hay un valor en la columna 2

script de shell para imprimir filas si hay un valor en la columna 2
1 2 3 4
3 1 4 2
1 4 3 2
4 2 1 3

¿Cómo puedo imprimir todas las filas en las que hay un2en la segunda columna.

Respuesta1

Usando awk(o su primo gawk):

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

En awkcolumnas se indican con a $, con $1la primera columna, $2la segunda, etc. Toda la línea viene dada por $0. Entonces este ejemplo dice: si la columna 2 es igual a 2, imprima la línea completa.

Editar: como dijo devnull a continuación:

gawk '$2==2' inputfile 

es suficiente. Para imprimir las líneas con 2 en la segunda columna y 4 en la última use $NF, que representa el Número de campos (es decir, la última columna):

gawk '$2==2 && $NF==4'  inputfile

información relacionada