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

Remove 8 extra spaces in front of each line for all 800 lines

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

请注意有些行是

abc
  dbc
   hfs

但是每行前面有8个空格,我只需要删除这8个空格,剩下的空格必须保持不变。

试试这个:

sed 's/ *$//' file

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

sed:

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

替换模式 s/^ \{8\}// 会将行首的 8 space 替换为空值。

附带说明一下,如果您要替换所有水平的白色 space(在您的 locale 中),而不仅仅是 space,请使用字符 class [:blank:]:

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

sub()函数类似awk

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

1,$ s/^ //g 在 vi​​ 中。 ^/.

前有8个空格