Como fazer grep em múltiplas strings que começam com determinado valor

Como fazer grep em múltiplas strings que começam com determinado valor

Eu tenho um arquivo que consiste em duas colunas com vários números e gostaria de pesquisar e encontrar linhas nas quais a segunda coluna comece com 1,008 ou 1,009 ou 1,01, mas gostaria de imprimir ambas, a primeira e a segunda coluna.

Tentei:

grep -Ev '^1.008|^1.009|^1.01'

mas não funciona.

Responder1

Ao pesquisar um campo em dados tabulados, awkseu bilhete dourado é:

awk '$2 ~ /^1.0(0[89]|1$)/ { print $1,$2 }' /path/to/inputfile

Isso aplicará o padrão especificado ("começa com 1.009 or 1.009ou é igual a 1.01") ao segundo campo e, para correspondências, gerará o primeiro e o segundo campos.

Responder2

Suponha que o nome do seu arquivo exercise.txtseja assim:

a   1.008  
b   1.00005  
c   1.01  
d   1.01  
e   1.009  
awk '( $2 >= 1.008 && $2 < 1.02 ) { print $1,$2 }' exercise.txt > output.txt

Então você tem:

$ head output.txt  
a   1.008  
c   1.01  
d   1.01  
e   1.009  

informação relacionada