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

时间:2015-02-10 00:07:19

标签: regex unix text command 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文件中每行开头的数字和空格。

7 个答案:

答案 0 :(得分:68)

:%s/^.\{0,5\}//应该做到这一点。它还处理少于5个字符的情况。

答案 1 :(得分:11)

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

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)

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

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

打印出第二列数据。使您免于完全计算空间。

答案 4 :(得分:2)

尝试

:s/^.....//

你可能不需要&#34; ^&#34; (行首),并且有5个字符的快捷方式 - 但简单就是好:)

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

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