我如何取代在第一个逗号之前find的最后一个时期

bash / Linux来说很新鲜,我试图做以下事情

我有一个带有主机名和其他信息的csv

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

我需要用(点)replace第一行的最后一个时间段,但是我用sed尝试过的所有内容都不起作用。 我可以通过削减然后执行替代来完成,但是我失去了剩下的领域

我怎样才能运行sed,所以当我运行剪切-d','-f 1 | sed commad时,我不会丢失其他两列

所以它应该看起来像这样

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

谢谢

我认为你可以这样做:

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