Edman Asked: 2024-07-26 13:40:29 +0800 CST2024-07-26 13:40:29 +0800 CST 2024-07-26 13:40:29 +0800 CST GNU Ed 中替换命令的“r”后缀的用例? 772 我在 Fedora Linux 上运行 GNU Ed。GNU Ed 手册隐晦地提到了'r'该命令的后缀s,以区别于'r'命令本身。它只说了以下内容: 后缀'r'导致re使用最后一次搜索的而不是最后一次替换的 re (如果搜索发生在替换之后)。 我看不出它的用处,尤其是当将 Ed 与 一起使用时rlwrap,使用它可以轻松修改最后的替换。有人可以提供'r'作为后缀的用例吗? ed 1 个回答 Voted Best Answer Vilinkameni 2024-07-26T14:35:01+08:002024-07-26T14:35:01+08:00 链接的手册指出该s命令的语法是: (.,.)s/re/replacement/[suffixes] 和 ed 可以使用以下“s”命令的替代语法重复最后一次替换: (.,.)s[suffixes] [...] 后缀“r”导致使用最后一次搜索的re而不是最后一次替换的re (如果搜索发生在替换之后)。 这里,re代表正则表达式。要使用命令r的后缀s,首先s需要执行命令,然后搜索(例如使用//),然后执行s仅带后缀的命令(因为s以 形式指定命令毫无意义s/re/replacement/,因为它指定了re): $ cat <<! >example.text > Hello, world! > The quick brown fox > ! $ ed example.text 34 1 Hello, world! s/\(\([[:alpha:]]\{1,\}\)o\)/"\1"/ 1p "Hello", world! /\(\(quick brown\)\)/ The quick brown fox sr ,p "Hello", world! The "quick brown" fox
链接的手册指出该
s
命令的语法是:和
这里,re代表正则表达式。要使用命令
r
的后缀s
,首先s
需要执行命令,然后搜索(例如使用//
),然后执行s
仅带后缀的命令(因为s
以 形式指定命令毫无意义s/re/replacement/
,因为它指定了re):