GNU sed 选项分隔符的历史是什么?

GNU sed 选项分隔符的历史是什么?

他们说 GNU sed 支持使用命令字符后面的任何字符作为命令选项的分隔符,如下所示。

echo abc | sed 'y%abc%ABC%' 

但我找不到这方面的文档官方手册。这有什么历史?文档是否缺失?或者这是一个未记录的功能?

答案1

就在那里,在其他命令

(/ 字符可以在任何给定的 y 命令中被任何其他单个字符统一替换。)

同样适用s///命令s

答案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

相关内容