如何删除vim中每一行的第一个字符串?

时间:2013-01-21 05:00:29

标签: linux text-editor vi

我有一个长达数千行的文本文件。每行以8个十六进制数字开头。我需要在每一行删除此字符串。我如何在vim中执行此操作?

4 个答案:

答案 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-