sed 匹配 换行符

假设 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

原文地址:https://www.cnblogs.com/chenfool/p/3820029.html