Como faço para substituir o último período encontrado antes da primeira vírgula sed

1

Muito novo no bash / Linux e estou tentando fazer o seguinte

Eu tenho um csv com nomes de host e outras informações como

host1.servers.com,serverA,location
host2.servers2.farm.com,serverb,location
a.servers.farm.farms.com,serverc,location

Eu preciso substituir o último período na primeira linha por (ponto), mas tudo que eu tentei usar sed não funciona. Eu sou capaz de fazê-lo, cortando, em seguida, realizando a substituição, mas depois perco os campos restantes

Como posso executar sed e, portanto, eu não perco as outras duas colunas como faço quando executo o comando cut -d ',' -f 1 | sed commad

Portanto, deve ser assim

host1.servers(.)com,serverA,location
host2.servers2.farm(.)com,serverb,location
a.servers.farm.farms(.)test,serverc,location

Obrigado

    
por user203913 02.02.2017 / 17:15

1 resposta

2

Acho que você pode fazer assim:

$ echo a.servers.farm.farms.com,serverc,location|sed -r 's/\.([^.,]+),/(.),/'
a.servers.farm.farms(.)com,serverc,location
$
    
por 02.02.2017 / 17:30

Tags