2017-05-04 3 views
0

viエディタに800行のコードがあります。私はすべての行の前に8つの余分なスペースがあります。一度に800行すべてに対して8つのスペースを削除するにはどうすればよいですか?すべての800行の各行の前に8個の余分なスペースを削除します。

いくつかの行に注意してくださいは

abc 
    dbc 
    hfs 

ですがeverylineの前にそこに8つのスペースがあると私は同じでなければならないもののみ8つのスペースを削除すると、残りのスペースを必要としています。これは、それぞれの行の末尾にあるすべてのスペースを削除します

sed 's/ *$//' file 

+0

http://stackoverflow.com/questions/6961705/vim-delete-the-first-2-spaces-for-multiple-linesを8つのスペースに適合させることはできますか?いいえ。 –

+0

あるいは 'IFS = read -r lineの純粋なbash解。 do echo $ {line:8}; done < file.txt > newfile.txt' –

+0

また、Vimでは直接 ':1、$ s/^ //'( '^ ....... /'の間の8つのスペース) –

答えて

2

1,$ s/^ //g(vi) ^の後と/の前には8つのスペースがあります。

+0

それは働いた。ありがとうございます –

+1

+1として: '%'は '1、$'と同じです。 –

+0

グレッグに感謝します。私は本当に輝きではありません。 Emacsの詳細これらは私が初期の頃からviで覚えていたものです。 –

0

はこれを試してみてください。 sed

+0

各行の前にスペースがあります –

+0

すべての800行のコードに対して、各行の前に8個の余分なスペースがあります。私は一度にすべての800行のコードに対して各行の前に8つのスペースしか削除しないことを望んでいました。助けてもらえますか? –

1

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

置換パターン、s/^ \{8\}//は、ヌルとラインの開始(S)で8つのスペースに置き換えます。サイドノートとして

、あなたは(あなたのlocaleで)すべての水平空白を交換するだけでなく、スペースを探している場合は、文字クラス[:blank:]使用:sub()機能と同様に

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

awkを:

awk 'sub("^ {8}", "") 1' file.txt 
awk 'sub("^[[:blank:]]{8}", "") 1' file.txt 
関連する問題