如何使用 vi 删除文本文件中每行的前 5 个字符?

How do I remove first 5 characters in each line in a text file using vi?

如何删除文本文件中每行的前 5 个字符?
我有一个这样的文件:

   4 Alabama
   4 Alaska
   4 Arizona
   4 Arkansas
   4 California
  54 Can
   8 Carolina
   4 Colorado
   4 Connecticut
   8 Dakota
   4 Delaware
  97 Do
   4 Florida
   4 Hampshire
  47 Have
   4 Hawaii

我想删除 txt 文件中每行开头的数字和 space。

:%s/^.\{0,5\}// 应该可以解决问题。它还处理少于 5 个字符的情况。

使用正则表达式^.....匹配每行的前5个字符。在全局替换中使用它:

:%s/^.....//

尝试

:s/^.....//

您可能不需要“^”(行首),而且这 5 个字符有快捷方式 - 但简单就好 :)

由于文本看起来像是柱状数据,awk 通常会有所帮助。我会使用 V 到 select 行,然后点击 :! 并使用 awk:

:'<,'>! awk '{ print  }'

打印出第二列数据。让您完全不用计算空格。

由于所有线路都排成一列,因此您无需替换即可解决此问题。 只需将光标移至左上角位置 (gg),然后: CTRL+vGwlx

:%s/^.\{0,5\}//g 对于全局,因为我们要为每一行删除每行的前 5 列。

我认为最简单的方法是使用 cut。

只需输入 cut -c n- <filename>

在我的例子中,为了删除第一个 2 个字符,我使用了这个 :%s/^.\{0,2\}// 并且它在有或没有 g 的情况下都一样。

我在 VIM - Vi IMproved 8.2macOS versionNormal version without GUI.