とあるリポジトリをクローンしたら、コードにCRLFとLFが混在してて、とてもムキー!と来ました。ここでは、シンプルなコマンドで改行コードを統一する方法を紹介します。
nkf コマンドとは
nkf は、LinuxやWindowsの異なる改行コードを変換するためのコマンドです。
インストール
Ubuntu
sudo apt install nkfArch
sudo pacman -S nkfMac
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 --overwriteLF の改行コードを CRLF に変換する場合も同様の手順で可能です。
alias に登録すると便利
頻繁に使用する場合は alias に登録すると便利です。
alias crlf2lf="grep -Ilrs `printf \"\r\n\"` . | xargs nkf -Lu --overwrite"alias lf2crlf="grep -Ilrs `printf \"\n\"` . | xargs nkf -Lw --overwrite"これで簡単に改行コードの相互変換が可能になります。
プロジェクトを開くだけでムッキード事件になるのはもう辛いよ・・・