对于所有800行,删除每行前面的8个额外空格

时间:2017-05-04 03:29:40

标签: linux bash vi

我在vi编辑器中有800行代码。每行前面有8个额外的空格。如何一次为所有800行删除8个空格?

请注意一些行

abc
  dbc
   hfs

但在每行前面有8个空格,我只需删除那8个空格,其余空格必须保持不变。

3 个答案:

答案 0 :(得分:2)

vi中的

1,$ s/^ //g ^之后和/之前有8个空格。

答案 1 :(得分:1)

使用sed

sed 's/^ \{8\}//' file.txt 

替换模式s/^ \{8\}//将用行替换行开头的8个空格。

作为旁注,如果您要替换所有水平空格(在locale中),而不仅仅是空格,请使用字符类[:blank:]

sed 's/^[[:blank:]]\{8\}//' file.txt 

同样awk具有sub()功能:

awk 'sub("^ {8}", "") 1' file.txt
awk 'sub("^[[:blank:]]{8}", "") 1' file.txt

答案 2 :(得分:0)

试试这个:

sed 's/ *$//' file

这将删除每行末尾的所有空格。