我有一些看起来像这样的数据:
6000.10c 1.2345E6
我可以为Vim写一个正则表达式来捕捉'重要的'部分:
/6000.10c\s\+\(\S\+\)
这会将数字部分捕获到第一组中。我想要做的是然后将捕获的字符串传递给系统命令,该命令将对结果执行某些操作并返回放入Vim的字符串。
如何将正则表达式捕获的组发送到系统命令?
答案 0 :(得分:2)
这是一个例子,awk实际上不是必须的,它只是用于显示system()
:
s/\v6000.10c\s+\zs(\S+)/\=system("awk '{print $0*2}' <<<". submatch(1))/
会改变:
6000.10c 1.2345E6
成:
6000.10c 2469000