假设 str="a,b,c,d"
echo ${str} | sed "s/,/ /g"
输出:
a
b
c
d
echo ${str} | sed "s/,/ /g" | sed "s/ /,/g"
输出:
a
b
c
d
没有匹配到 换行符
这是因为sed 模式是以 换行符作为行的结束标记的。它没有办法匹配到 再替换
解决方法:
echo ${str} | sed "s/,/ /g" | sed "s/ /,/g" | sed ":label;N;s/ /,/;b label"
输出:
a,b,c,d