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

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

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

ひでまる

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

Arch Linuxでもセキュアブートしたい!のカバー画像
archlinux

Arch Linuxでもセキュアブートしたい!

Windows 11と共存するため泣く泣くセキュアブートを有効にする羽目になったので、sbctlとgrubでArch Linuxを起動できるようにした手順メモ。

三年間そだてたdotfilesとおさらばした話のカバー画像
neovim

三年間そだてたdotfilesとおさらばした話

180個のプラグインで重くなったNeovimを軽量化するため、3年間育てたdotfilesを一新した体験記。vim-jetpackを使った効率的なプラグイン管理と遅延読み込みについて。

Dockerでマイクラサーバーをサクッと立てるのカバー画像
docker

Dockerでマイクラサーバーをサクッと立てる

Docker を使って手軽に Minecraft サーバー (PaperMC) を立てる方法をメモしました。Docker Compose を使えば管理もラクチン。他のサーバー (Bukkit, Fabric など) でも応用できるので、自分好みの環境を作りたい人はぜひ参考にどうぞ。

シンプルで爆速なプラグインマネージャー Jetpack.vimのカバー画像
neovim

シンプルで爆速なプラグインマネージャー Jetpack.vim

Vim のシンプルで高速なプラグインマネージャー「vim-jetpack」のインストール方法と設定方法を解説。主要なプラグイン管理方式にも対応し、他のマネージャーからの移行手順も紹介。