改行コード(CRLF・LF)を相互変換したい
ひでまるブログ

改行コード(CRLF・LF)を相互変換したい

article cover

ひでまる

2022/09/07に公開

とあるリポジトリをクローンしたら、コードにCRLFとLFが混在してて、とてもムキー!と来ました。ここでは、シンプルなコマンドで改行コードを統一する方法を紹介します。

nkf コマンドとは

nkf は、LinuxやWindowsの異なる改行コードを変換するためのコマンドです。

インストール

Ubuntu

Terminal window
sudo apt install nkf

Arch

Terminal window
sudo pacman -S nkf

Mac

Terminal window
brew install nkf

使い方

nkf には -Lu(LFに変換)と -Lw(CRLFに変換)のオプションがあります。

CRLF を LF に変換

Terminal window
nkf -Lu --overwrite <変換するファイル>

LF を CRLF に変換

Terminal window
nkf -Lw --overwrite <変換するファイル>

--overwrite オプションについて

--overwrite を指定すると、元のファイルを直接上書きします。
指定しない場合、変換結果はターミナルに表示されるだけで、ファイルは変更されません。

カレントディレクトリ内のすべてのファイルを変換

CRLF を LF に変換

Terminal window
grep -Ilrs `printf "\r\n"` . | xargs nkf -Lu --overwrite

このコマンドは、grep で CRLF を含むファイルを検索し、nkf で LF に変換します。

LF を CRLF に変換

Terminal window
grep -Ilrs `printf "\n"` . | xargs nkf -Lw --overwrite

LF の改行コードを CRLF に変換する場合も同様の手順で可能です。

alias に登録すると便利

頻繁に使用する場合は alias に登録すると便利です。

Terminal window
alias crlf2lf="grep -Ilrs `printf \"\r\n\"` . | xargs nkf -Lu --overwrite"
alias lf2crlf="grep -Ilrs `printf \"\n\"` . | xargs nkf -Lw --overwrite"

これで簡単に改行コードの相互変換が可能になります。
プロジェクトを開くだけでムッキード事件になるのはもう辛いよ・・・

Other articles