使用部分匹配字符串进行 CLI 搜索和替换的最简单方法是什么?

What is the most minimalistic way for CLI search and replace using part of matched strings?

我有一些 Ruby 文件,其中一些哈希由输入到 elasticsearch 的符号索引。它们从按字符串索引的查询中返回。我想用符号替换所有这些。

最少使用它的最佳命令是什么?

我尝试做类似 'a'bs/\v:[a-z_]+/\='submatch(0)'/g 的事情,但遇到了一些麻烦(不起作用)。

如果没有 awk、sed、perl 或任何其他常用工具,您将如何以尽可能少的字符同时优雅地完成此任务? (我不认为 submatch(0) 优雅。)

我认为您正试图将 :symbol 变成 'symbol'。如果是这样,您可以使用捕获组来执行此操作

:s/\v:([a-z_]+)/''/g

其中括号中的所有内容都是

引用的第一个捕获组