Como apagar todos os caracteres em uma linha depois de “]” com sed?

12

Como apagar todos os caracteres em uma linha depois de "]" com sed?

Estou tentando usar algum arquivo usando o cat, awk. Agora meu oneliner me retorna algo como

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

Agora eu quero apagar tudo depois de "]" caractere (com "]"). Eu quero apenas 121.122.121.111 na minha saída.

Eu estava procurando esse exemplo específico de sed, mas não encontrei ajuda nesses exemplos.

    
por B14D3 13.06.2012 / 10:19

3 respostas

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

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

 sed 's/].*//' filename
    
por 13.06.2012 / 10:30
10

Que tal cut :

cat logfile | cut -d "]" -f1
    
por 13.06.2012 / 10:28
3

Algo como

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

deve fazer o que quiser. O \(.*\)] capturará todo o texto até o ] em um padrão lembrado e, em seguida, o o substituirá pela linha inteira.

    
por 13.06.2012 / 10:29

Tags