viで修正したファイルに改行コードが入ってしまう

サーバー上にあるプログラムから参照されるファイルをviで修正した際に、どうしても改行コードが入ってしまいます。対応策を下記にまとめました。

viで修正して確認

事象に気がついたのはlinux上のサーバー機でしたが、手元のMacで検証します。適当にtxtファイルを作成して、viで文字を入力後、確認すると以下のように\n が入ってしまいます。。。(odコマンドでダンプ表示)

[user@252 ~]% touch hoge.txt
[user@252 ~]% vi hoge.txt
[user@252 ~]% cat hoge.txt 
hogehoge
[user@252 ~]% od -c hoge.txt 
0000000    h   o   g   e   h   o   g   e  \n                            
0000011
[user@252 ~]% 

:set binary noeolで改行を除去して保存

viでファイル編集時に、「:set binary noeol」を実行し、編集を行うと改行文字が入らなくなります。

[user@252 ~]% vi hoge.txt 
[user@252 ~]% cat hoge.txt  
hogehogehoge%                                                                                                          [nishii@252 ~]% od -c hoge.txt
0000000    h   o   g   e   h   o   g   e   h   o   g   e                
0000014
[user@252 ~]% 

通常であればファイル末尾に改行をいれておいた方が良いので、どうしても不要な場合に上記を実施しましょう。

この記事が気に入ったらサポートをしてみませんか?