pt remover o espaço

1

eu tenho o nome da lista.txt com esta string:

Los Angeles, CA us1.vpn.goldenfrog.com
Washington, DC  us2.vpn.goldenfrog.com
Austin, TX  us3.vpn.goldenfrog.com
Miami, FL   us4.vpn.goldenfrog.com
New York City, NY   us5.vpn.goldenfrog.com
Chicago, IL us6.vpn.goldenfrog.com
San Francisco, CA   us7.vpn.goldenfrog.com
Amsterdam   eu1.vpn.goldenfrog.com
Copenhagen  dk1.vpn.goldenfrog.com
Stockholm   se1.vpn.goldenfrog.com
Hong Kong   hk1.vpn.goldenfrog.com
London  uk1.vpn.goldenfrog.com

agora eu quero com sed deletar tudo antes * .vpn.goldenfrog.com (* = 3Char)

saída que eu quero:

hk1.vpn.goldenfrog.com
dk1.vpn.goldenfrog.com
etc ...
    
por Mehran Goudarzi 21.02.2016 / 07:56

2 respostas

0

Se você quiser uma solução sed :

sed 's/.*[[:blank:]]\([^[:blank:]]*\)$//' file.txt

O grupo capturado ( ) irá conter a porção da linha depois do último espaço, nós estamos usando isso na substituição.

Exemplo:

% sed 's/.*[[:blank:]]\([^[:blank:]]*\)$//' file.txt  
us1.vpn.goldenfrog.com
us2.vpn.goldenfrog.com
us3.vpn.goldenfrog.com
us4.vpn.goldenfrog.com
us5.vpn.goldenfrog.com
us6.vpn.goldenfrog.com
us7.vpn.goldenfrog.com
eu1.vpn.goldenfrog.com
dk1.vpn.goldenfrog.com
se1.vpn.goldenfrog.com
hk1.vpn.goldenfrog.com
uk1.vpn.goldenfrog.com

grep também pode fazer isso com facilidade:

% grep -o '[^[:blank:]]*$' file.txt                   
us1.vpn.goldenfrog.com
us2.vpn.goldenfrog.com
us3.vpn.goldenfrog.com
us4.vpn.goldenfrog.com
us5.vpn.goldenfrog.com
us6.vpn.goldenfrog.com
us7.vpn.goldenfrog.com
eu1.vpn.goldenfrog.com
dk1.vpn.goldenfrog.com
se1.vpn.goldenfrog.com
hk1.vpn.goldenfrog.com
uk1.vpn.goldenfrog.com
    
por 21.02.2016 / 08:06
3

se não precisar ser sed , awk será recortado para este processo:

awk '{print $NF}' filename
    
por 21.02.2016 / 08:01