【发布时间】:2016-02-15 16:55:38
【问题描述】:
假设我有输入:
/a/b/c/d/e/
/a/b/c/d/e
a/b/c/d/e/
a/b/c/d/e
我想用+ 替换所有不在边缘的/ 所以输出是:
/a+b+c+d+e/
/a+b+c+d+e
a+b+c+d+e/
a+b+c+d+e
我试过这个命令:
sed -e "s#\(.\)/\(.\)#\1+\2#g"
接近但不完全:
/a+b/c+d/e/
/a+b/c+d/e
a+b/c+d/e/
a+b/c+d/e
大概是因为\(.\) 在连续的/ 字符之间重叠。
我不相信 sed 对行首或行尾有一个空匹配运算符。那么,这是怎么做到的呢?
【问题讨论】: