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}$//
您可以使用:
:%s/\.\d\{3\}-\d\{4\}//
或
:%norm 20ld9l
向左移动 20 列(从第 1 列到第 21 列),然后从那里删除直到 21+9 = 30
您可以使用 \%Xv
来匹配(v
虚拟)列 X
,因此:
:%s/\%21v.*\%31v//
将删除列 21
和 30
之间的字符。
我正在尝试使用 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}$//
您可以使用:
:%s/\.\d\{3\}-\d\{4\}//
或
:%norm 20ld9l
向左移动 20 列(从第 1 列到第 21 列),然后从那里删除直到 21+9 = 30
您可以使用 \%Xv
来匹配(v
虚拟)列 X
,因此:
:%s/\%21v.*\%31v//
将删除列 21
和 30
之间的字符。