替換逗號分隔字符串,我要取代這個我可以用特定的模式
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命令。
替換逗號分隔字符串,我要取代這個我可以用特定的模式
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命令。
這可以通過兩個替換來完成,首先在所有出現的字符串或逗號開頭之後插入「服務器」部分(即「服務器」後面緊跟一個空格),然後第二個替換所有出現的逗號或用分號結尾。
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;
做它的三個步驟:
server
前綴相同的地址semicolumn終止每個IP地址。sed 's/,/;/g ; s/$/;/ ; s/([0-9.]*;)\;/server \1/g'
下面是一個使用單一替代簡單sed
解決方案:
sed 's/\([^,]*\),\?/server \1;/g'
至少投入一些精力英寸 – 123