如何替换第一个逗号之前的最后一个句点

如何替换第一个逗号之前的最后一个句点

我对 bash/Linux 还很陌生,我正在尝试做以下事情

我有一个包含主机名和其他信息的 csv,如下所示

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

我需要用(点)替换第一行的最后一个句点,但我用 sed 尝试过的所有方法都不起作用。我可以通过剪切然后执行替换来做到这一点,但这样我就会丢失剩余的字段

我怎样才能运行 sed 并且不会像运行 cut -d ',' -f 1 |sed commad 时那样丢失其他两列

所以它应该看起来像这样

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

谢谢

答案1

我认为你可以这样做:

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

相关内容