他们说 GNU sed 支持使用命令字符后面的任何字符作为命令选项的分隔符,如下所示。
echo abc | sed 'y%abc%ABC%'
但我找不到这方面的文档官方手册。这有什么历史?文档是否缺失?或者这是一个未记录的功能?
答案1
答案2
我正在回答我自己的愚蠢问题。
sed 不支持将命令字符后面的任何字符作为命令选项的分隔符。只有 's' 和 'y' 命令支持此功能。文档在第 3.3 和 3.5 节中说明了这些。
/ 字符可以被任何给定的 s 命令中的任何其他单个字符统一替换。
(/ 字符可以在任何给定的 y 命令中被任何其他单个字符统一替换。)
答案3
在 ”这其中有什么历史?“:
我发现 ”SED — 非交互式文本编辑器“作者:Lee E. McMahon,日期:1978 年 8 月 15 日”。在“3.2. 替代函数”一节中,第 5 页提到(关于“s<pattern><replacement><flags>”):
该参数包含一个模式,与地址中的模式完全相同(参见上面的 2.2)。<pattern> 和上下文地址之间的唯一区别是上下文地址必须由斜杠 ('/') 字符分隔;<pattern> 可以由空格或换行符以外的任何字符分隔。
因此,历史可以追溯到的根源sed
。