とあるリポジトリをクローンしたら、コードにCRLFとLFが混在してて、とてもムキー!と来ました。ここでは、シンプルなコマンドで改行コードを統一する方法を紹介します。
nkf コマンドとは
nkf
は、LinuxやWindowsの異なる改行コードを変換するためのコマンドです。
インストール
Ubuntu
sudo apt install nkf
Arch
sudo pacman -S nkf
Mac
brew install nkf
使い方
nkf
には -Lu
(LFに変換)と -Lw
(CRLFに変換)のオプションがあります。
CRLF を LF に変換
nkf -Lu --overwrite <変換するファイル>
LF を CRLF に変換
nkf -Lw --overwrite <変換するファイル>
--overwrite
オプションについて
--overwrite
を指定すると、元のファイルを直接上書きします。
指定しない場合、変換結果はターミナルに表示されるだけで、ファイルは変更されません。
カレントディレクトリ内のすべてのファイルを変換
CRLF を LF に変換
grep -Ilrs `printf "\r\n"` . | xargs nkf -Lu --overwrite
このコマンドは、grep
で CRLF を含むファイルを検索し、nkf
で LF に変換します。
LF を CRLF に変換
grep -Ilrs `printf "\n"` . | xargs nkf -Lw --overwrite
LF の改行コードを CRLF に変換する場合も同様の手順で可能です。
alias に登録すると便利
頻繁に使用する場合は alias
に登録すると便利です。
alias crlf2lf="grep -Ilrs `printf \"\r\n\"` . | xargs nkf -Lu --overwrite"alias lf2crlf="grep -Ilrs `printf \"\n\"` . | xargs nkf -Lw --overwrite"
これで簡単に改行コードの相互変換が可能になります。
プロジェクトを開くだけでムッキード事件になるのはもう辛いよ・・・