繁体   English   中英

VIM:如何删除每行中的某些字符范围

[英]VIM : How to delete certain char range in every line

我正在尝试使用 VIM 删除文件每一行中的某些字符范围。

示例文件,

"2021-11-29T06:35:04.300-0500",01,342864
"2021-11-29T06:35:20.252-0500",54,332323
"2021-11-29T06:35:20.000-0500",63,513133

我希望结果是这样的,

"2021-11-29T06:35:04",01,342864
"2021-11-29T06:35:20",54,332323
"2021-11-29T06:35:20",63,513133

我想在整个文件的每一行中删除秒[.300-0500, .252-0500, .000-0500] 之后的字符,即字符范围21-30。

我该怎么做呢?

我知道我可以使用以下命令从行首或行尾删除字符范围,

:%s/^.\{0,5\}//
:%s/.\{1}$//

您可以使用\%Xv匹配( v )列X ,所以:

:%s/\%21v.*\%31v//

将删除列2130之间的字符。

你可以使用:

:%s/\.\d\{3\}-\d\{4\}//

或者

:%norm 20ld9l

将 20 列向左移动(从第 1 列到第 21 列),然后从那里删除,直到 21+9 = 30

暂无
暂无

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

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