我对 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
$