我看到有人使用这样的表达式:sed -e 's, *$,,'
有谁知道为什么我们可以这样使用它,它有什么作用?
我认为 s 命令应该是 sed -e 'addr,addrs/reg/sub/'
?
最佳答案
来自 Using different delimiters in sed :
sed takes whatever follows the "s" as the separator
这是避免转义过多的好方法。如果您使用要处理的字符串中不存在的定界符,代码将更具可读性。
例如,假设我们要从字符串中替换 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
关于linux - 为什么sed的s命令后面可以跟一个逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17877060/