我有一行看起来如下,我在vim中查看。
0,0,0,1.791759,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.278115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
它来自特征向量文件,每行是一个实例,每列是该特征号的特征值。我想弄清楚哪个特征号5.27对应。我知道
s/,//gn
将计算行中逗号的数量,但是如何限制命令来计算行中数字为5.27的逗号数?
我看到这两篇看似相关的帖子似乎无法将它们拼凑在一起:How to compute the number of times word appeared in a file or in some range和Search and replace in a range of line and column
答案 0 :(得分:3)
s/,\ze.*5\.27//gn
有趣的部分是\ze
,它设定了匹配的结束。有关详细信息,请参阅:h /\ze
答案 1 :(得分:1)
使用可视模式选择所需区域并执行
:s/\v%V%(,)//gn
\v
使我们能够通过\
%V
将搜索限制为在视觉选择
%()
的替换, |
会将搜索保持在一起
它不漂亮但它有效。请参阅/\v
,\%V
和\%(
还有一些名为vis.vim的插件版本,它提供了更简单的命令,旨在实现上述目标。但是我还没有让他们中的任何一个工作,所以我不会再对此发表评论。
答案 2 :(得分:0)
试试这个
s/,.\{-}5.27//gn
它应该有用。