我有一个巨大的文件,其中有多个列,如下所示:
J02-31 23.2 ...
J30-09 -45.4 ...
J05+30 56.1 ...
J00-20 -78.2 ...
J11-54 232.0 ...
... ... ...
我只想在第一列用$-$
替换-
,也就是说,我的输出应该是这样的:
J02$-$31 23.2 ...
J30$-$09 -45.4 ...
J05+30 56.1 ...
J00$-$20 -78.2 ...
J11$-$54 232.0 ...
... ... ...
有没有办法用vi
做到这一点,我知道python/pandas
可以做到,但我对vi
的用法很感兴趣。
2条答案
按热度按时间xzabzqsa1#
我会选
这意味着:
%s/
:将此替换应用于每行^\S*
:从行首读取尽可能多的非空白字符\zs
:实际匹配开始(您也可以捕获上面的\S*
并将其插入)-
:与-
匹配(注意:这将仅匹配第一列中的 last-
,您的问题不太清楚是否可以有多个)/$-$/
:用$-$
替换匹配部件(由于\zs
,仅为-
)a8jjtwal2#
您可以:
它只在与模式
/^\S*-/
匹配的行(即,在第一列中具有-的那些行)上执行替换s/-/$-$/
。