繁体   English   中英

如何将Vim的正则表达式捕获组传递给系统命令?

[英]How to pass Vim's regex captured groups to system command?

我有一些看起来像这样的数据:

6000.10c 1.2345E6

而且我可以为Vim写一个正则表达式来捕获“重要”部分:

/6000.10c\s\+\(\S\+\)

这会将数字部分捕获到第一组中。 然后,我想做的就是将此捕获的字符串传递给系统命令,该命令将对结果进行处理并返回放入Vim的字符串。

如何将正则表达式捕获的组发送到系统命令?

下面是一个例子,以及在AWK其实不是必须的,它仅仅是用于示出system()

s/\v6000.10c\s+\zs(\S+)/\=system("awk '{print $0*2}' <<<". submatch(1))/

将改变:

6000.10c 1.2345E6

变成:

6000.10c 2469000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM