linux - 为什么sed的s命令后面可以跟一个逗号?

标签 linux bash sed gnu utility

我看到有人使用这样的表达式: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/

相关文章:

c - 在简单的linux shell中实现环境变量

linux - 以编程方式检查 Linux 时钟的健全性

linux - 在linux中将tab转换为fasta格式

string - 在 UNIX 文件的每一行中第 N 次出现后替换所有出现的字符

c - 如何处理与 Telnet 服务器的 Telnet session

linux - 如何在 Perl 中监控远程 Linux 机器并检索已安装的软件?

bash - 如果只有一个实例正在运行,是否继续执行脚本?

linux - 如何创建可以与普通 bash 命令结合使用的 "string"别名?

bash - awk 打印每第 n 个匹配的行和所有不数学的行

linux - sed 在多个空格的情况下搜索和替换