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.

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

12

Que tal, em cutvez disso:

cat logfile | cut -d "]" -f1

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.