2017-05-04 59 views
0

我在vi編輯器中有800行代碼。每行前面有8個空格。我怎樣才能一次刪除所有800行的8個空格?在所有800行的每行前刪除8個額外的空格

請注意一些線

abc 
    dbc 
    hfs 

但everyline的前面有8個空格,我只需要這8位被刪除,剩下的空間必須保持不變。

+0

您可以將http://stackoverflow.com/questions/6961705/vim-delete-the-first-2-spaces-for-multiple-lines改編爲8個空格,不是嗎? –

+0

或者IFS = read -r行的純bash解決方案;做echo $ {line:8};完成< file.txt > newfile.txt' –

+0

或者直接在Vim中,只需':1,$ s/^ //'(^ ....... /'之間的8個空格) –

回答

2

在vi 1,$ s/^ //g。在^之後和/之前有8個空格。

+0

它工作。謝謝 –

+1

作爲+1:使用'%'相當於'1,$'。 –

+0

謝謝Greg。我真的不是一個虛無v。的人。更多的Emacs人。這些只是我早年用vi記得的東西。 –

0

試試這個:

sed 's/ *$//' file 

這將刪除所有的空間是在每行的末尾。

+0

空格在每行之前 –

+0

那裏對於所有800行代碼,每行前有8個額外空格。我想在每行之前只刪除所有800行代碼中的8個空格。你能幫忙嗎? –

1

sed隨着:

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

的替換模式,s/^ \{8\}//,將在與零線(S)的開始代替8個空格。

作爲一個側面說明,如果你正在尋找替換所有水平空白字符(在你的locale),而不僅僅是空間,使用的字符類[:blank:]

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

同樣awksub()功能:

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