如何使用 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.2
、macOS version
、Normal version without GUI.
如何删除文本文件中每行的前 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.2
、macOS version
、Normal version without GUI.