Substitua números em uma porta de endereço IP aleatória por espaço

1

Eu tenho um arquivo com números de porta e IP. Eu gostaria de tirar o número da porta e deixar o IP sozinho.

xyz  10.93.10.13:58160).
xyz 10.93.10.13:58161).
xyz 10.18.104.181:12466).
xyz 10.93.10.13:60585).
wxy 10.93.10.13:60586).
wxy 10.93.10.13:60587).
ADMIN loopback[127.0.0.1]:33955).
ADMIN loopback[127.0.0.1]:33957).
ADMIN loopback[127.0.0.1]:33961).
ADMIN loopback[127.0.0.1]:33962).

saída esperada

xyz 10.93.10.13
xyz 10.93.10.13
xyz 10.18.104.181
xyz 10.93.10.13
wxy 10.93.10.13
wxy 10.93.10.13
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]

eu tentei um procedimento ruim que não funciona

cat 1.txt|grep -v [:12312]

obrigado

    
por ady6831983 08.08.2018 / 20:54

2 respostas

2

Primeiro, uso inútil de cat . Em segundo lugar, grep apenas procura; isso não muda nada. Você quer sed aqui:

$ sed -E 's/:[0-9]+.*/ /' input
xyz  10.93.10.13
xyz 10.93.10.13
xyz 10.18.104.181
xyz 10.93.10.13
wxy 10.93.10.13
wxy 10.93.10.13
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]
    
por 08.08.2018 / 20:57
0

sed 's/\(.*\):.*//' filename deve fazer o truque. Combine tudo antes do cólon e retorne isso na substituição.

    
por 08.08.2018 / 20:58