我想替换这个
192.168.1.100,192.168.1.101,192.168.1.102
到
server 192.168.1.100;server 192.168.1.101;server 192.168.1.102;
在linux中使用sed命令。
答案 0 :(得分:2)
这可以通过两次替换完成,首先插入"服务器"在所有出现的字符串或逗号开头之后,紧接着(即" s"服务器"后跟空格),第二次用分号替换所有出现的逗号或字符串结尾
sed -E 's/(^|,)/&server /g; s/(,|$)/;/g;' <<<'192.168.1.100,192.168.1.101,192.168.1.102';
## server 192.168.1.100;server 192.168.1.101;server 192.168.1.102;
答案 1 :(得分:1)
分三步完成:
server
前缀的相同地址。 sed 's/,/;/g ; s/$/;/ ; s/([0-9.]*;)\;/server \1/g'
答案 2 :(得分:1)
这是一个使用单一替换的简单sed
解决方案:
sed 's/\([^,]*\),\?/server \1;/g'