【问题标题】:Why can s command of sed can be followed by a comma?为什么sed的s命令后面可以跟逗号?
【发布时间】:2013-07-26 08:56:18
【问题描述】:

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

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

【问题讨论】:

标签: linux bash sed gnu utility


【解决方案1】:

来自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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多