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

问题描述 投票:31回答:7

如何删除文本文件中每行的前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文件中每行开头的数字和空格。

regex unix text command vi
7个回答
76
投票

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


12
投票

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

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

4
投票

由于所有行都已对齐,因此您无需替换即可解决此问题。只需将光标移到左上角的位置(gg),然后:CTRL + vGwlx


3
投票

由于文本看起来像是列数据,因此awk通常会有所帮助。我会使用V选择行,然后点击:!并使用awk:

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

打印出数据的第二列。使您完全不必计算空格。


2
投票

尝试

:s/^.....//

您可能不需要“ ^”(行首),并且有5个字符的快捷方式-但简单就可以了:)]


0
投票

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


0
投票

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

只是类型cut -c n- <filename>

© www.soinside.com 2019 - 2024. All rights reserved.