Ignorando uma saída com grep

0

No momento, estou usando o grep para localizar uma string em um arquivo. No entanto, recebo um resultado que não quero.

Exemplo de saída:

user@user:~/tmp$ grep "z=" note > tmp.txt | cat tmp.txt 
z=0.016728
 S_1.4 GHz=   1597.61548     mJy, for L_1.4=1E24 W Hz^-1 (index=0.8)

Eu não quero usar o grep para ignorar todos os resultados após z = 0.016728 porque não posso garantir que a estrutura de arquivos que estou usando sempre terá z = before GHz =.

Eu gostaria de ignorar qualquer coisa sem uma nova linha ou com um valor de caractere antes de z =.

    
por J. Doe 31.05.2018 / 21:36

2 respostas

2

Com base na amostra que você forneceu, a opção mais simples seria ancorar a expressão no início de uma linha:

grep '^z=' note

Como alternativa, você pode corresponder apenas após um limite de :

grep '\bz=' note

Veja Início da sequência e fim das âncoras de string e Brasil das palavras

    
por steeldriver 31.05.2018 / 21:42
1

Releia man grep e use% estendidagrep com uma expressão regular simples (e aspas simples para evitar sempre a expansão do shell):

grep -E '^z=' note
    
por waltinator 31.05.2018 / 21:40