Como grep várias strings que começam com determinado valor [duplicate]

4

Eu tenho um arquivo composto de duas colunas com um monte de números, e gostaria de pesquisar e encontrar linhas nas quais a segunda coluna começa com 1.008 ou 1.009 ou 1.01 mas eu gostaria de ter impresso ambas, 1ª e 2ª coluna.

Eu tentei:

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

mas não funciona.

    
por Yoda 24.05.2017 / 18:41

2 respostas

7

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 que você especificar ("começa com 1.009 or 1.009 ou é igual a 1.01 ") ao segundo campo e, para correspondências, exibirá o primeiro e o segundo campos.

    
por 24.05.2017 / 18:46
2

Suponha que seu arquivo chamado 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  
    
por 24.05.2017 / 18:52

Tags