Como excluir todos os caracteres em uma linha após "]" com sed?

13

Como excluir todos os caracteres em uma linha após "]" com sed?

Estou tentando grep algum arquivo usando cat, awk. Agora meu oneliner me devolve algo como

121.122.121.111] other characters in logs from sendmail.... :)

Agora eu quero excluir todos os caracteres depois de "]" (com "]"). Eu quero apenas 121.122.121.111na minha saída.

Eu estava pesquisando no Google esse exemplo específico de sed, mas não encontrei nenhuma ajuda nesses exemplos.

B14D3
fonte

Respostas:

20
 echo "121.122.121.111] other characters in logs from sendmail...." | sed 's/].*//' 

Então, se você tem um arquivo cheio de linhas como essa, pode fazer

 sed 's/].*//' filename
Mike
fonte
12

Que tal, em cutvez disso:

cat logfile | cut -d "]" -f1
Sven
fonte
3

Algo como

sed 's|\(.*\)\] .*$|\1|'

deve fazer o que quiser. Ele \(.*\)]capturará todo o texto até o ]padrão lembrado e o \1substituirá por toda a linha.

user9517
fonte