Retornando o texto exato somente para saída?

0

Digamos que eu tenha esta linha de texto:

#cat numbers.txt
Numbers!!!! John=55 May=43 RandomData Alex=72 Ben=90 End

Mas estou interessado apenas no número do número de John. Como removo todas as outras coisas que não quero e transformo o resultado em:

#cat numbers.txt | <some command line magic>
John=55

Observação: não sei onde "John" está localizado no arquivo de texto ou qual número está alocado a John.

    
por REDBEAN 19.11.2017 / 10:19

2 respostas

0

Eu faria:

awk '{ print $2 }' numbers 
John=55

Contanto que as informações desejadas estejam sempre no segundo campo.

Editar: Conforme sua edição, já que você não sabe onde John está localizado no arquivo, eu faria:

egrep -o 'John=[0-9]{2}' numbers 
John=55
    
por 19.11.2017 / 10:27
0

Se você quiser apenas o que está entre o John = e o seguinte delimitador de espaço (pode ser qualquer número de dígitos e não é necessário saber com antecedência)

grep -Po 'John=\K.*?(?= )' numbers
    
por 19.11.2017 / 16:12