我有一个长达数千行的文本文件。每行以8个十六进制数字开头。我需要在每一行删除此字符串。我如何在vim中执行此操作?
答案 0 :(得分:1)
用空字符串替换任意一行的前8个十六进制字符(0-9位,a-f / A-F字母):
:%s/^[0-9a-fA-F]\{8\}//gc
答案 1 :(得分:1)
使用 ^ V 进行块选择,突出显示您的八列,并正常删除。
或使用:s
:
:%s/\v^[a-fA-F0-9]{8}//
答案 2 :(得分:1)
如果该行
12345678 Something else
在VIM
中,每行的头部总共要删除9个字符:1,$s/^.........//
应该做的技巧(9点),
:
告诉vim你要输入一个命令1,$
表示命令从第1行影响到最后一个(或g
全局)s
表示替换^
表示行开头.....
表示5(任意)字符s/^.....//
表示在行开头替换5个字符编辑以匹配问题中的十六进制字符数。
答案 3 :(得分:1)
使用cut
命令。这种方式更直接。
echo '12345678 Something else' | cut -c 10-
结果:
Something else
提醒一下,cut
索引字符串从1开始而不是0。
在vi
,我们可以在cut
中运行vi
:
:%!cut -c 10-