为什么sed的命令后面可以跟逗号?

dsp*_*pjm 2 linux bash gnu sed utility

我看到有人使用如下表达式:sed -e 's, *$,,' 有人知道为什么我们可以像这样使用它,它有什么作用?

我以为s命令应该是sed -e 'addr,addrs/reg/sub/'

fed*_*qui 8

在sed中使用不同的分隔符:

sed将"s"后面的任何内容作为分隔符

这是避免逃避太多的好方法.如果使用您要处理的字符串中不存在的分隔符,则代码更易读.

例如,假设我们想要lo/bye从字符串中替换.随着/作为分隔符这将是一个有点乱:

$ echo "hello/bye" | sed 's/lo\/bye/aa/g'
helaa
Run Code Online (Sandbox Code Playgroud)

因此,如果我们定义另一个分隔符,则更清楚:

$ echo "hello/bye" | sed 's|lo/bye|aa|g'
helaa
$ echo "hello/bye" | sed 's,lo/bye,aa,g'
helaa
Run Code Online (Sandbox Code Playgroud)