retorna linhas contendo números em um intervalo em uma determinada coluna

1

Tarefa: retorna linhas contendo números no intervalo de x a y na coluna z.

Exemplo, selecionando linhas com números no intervalo 140-160 na coluna 2.

1 1    some data 150
2 150  some data 1
3 151  some data 151
4 1000 some data 150

deve retornar:

2 150 some data 1
3 151 some data 151 

Abra para usar grep, awk ou sed. Novo no Unix. Obrigada!

    
por maharaja9933 18.11.2016 / 17:23

2 respostas

1

Você pode fazer isso com awk like

awk '$2 > 140 && $2 < 160' input_file

que irá comparar o segundo campo ( $2 ) com o intervalo que você deseja e imprimir as linhas apenas se ambas as condições forem satisfeitas.

Se seus valores mínimo e máximo estiverem armazenados em variáveis, você pode passá-los com -v em awk da seguinte forma:

min=140
max=160
awk -v lower="$min" -v upper="$max" '$2 > lower && $2 < upper' input_file
    
por 18.11.2016 / 17:26
0
grep -E -e "^[0-9]+ 1[45][0-9]" -e "^[0-9]+ 160"
    
por 18.11.2016 / 17:26