grep um padrão que não tem ponto depois

0

Arquivo a contém,

abcd
abcd. defgh
defghabcd.
defgh. abcd
abcd .defgh

Como posso imprimir todas as linhas que possuem o padrão abcd sem um sufixo de ponto?

Deve imprimir,

abcd
defgh. abcd
abcd .defgh #. after any other character is good to go

Eu tentei grep 'abcd^[\.]' a , não funciona.

    
por Madhavan Kumar 11.09.2015 / 09:15

1 resposta

2

Usando ^ fora dos parênteses [...] que significa início da linha. E você cometerá erros quando houver um ponto de escape entre colchetes, [^\.] significa qualquer coisa, exceto barra invertida \ e ponto . , não apenas ponto .

Outra observação de que abcd[^.] não corresponderá a abcd no final da linha.

Então você precisa:

$ grep -E 'abcd([^.]|$)' <file
abcd
defgh. abcd
abcd .defgh
    
por 11.09.2015 / 09:22

Tags