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, awk
seu 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.009
ou é 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.txt
seja 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