我看到有人使用如下表达式:sed -e 's, *$,,'
有谁知道为什么我们可以这样使用它,它做了什么?
我认为s命令应该是sed -e 'addr,addrs/reg/sub/'
?
答案 0 :(得分:8)
来自Using different delimiters in sed:
sed将“s”后面的任何内容作为分隔符
这是避免逃避太多的好方法。如果使用您想要处理的字符串中不存在的分隔符,则代码更易读。
例如,假设我们要从字符串中替换lo/bye
。以/
作为分隔符会有点混乱:
$ echo "hello/bye" | sed 's/lo\/bye/aa/g'
helaa
因此,如果我们定义另一个分隔符,则更清楚:
$ echo "hello/bye" | sed 's|lo/bye|aa|g'
helaa
$ echo "hello/bye" | sed 's,lo/bye,aa,g'
helaa