こんにちは。Tama(@tamateur_com)です!
今回は、コマンドを使って改行コードを変換する方法を紹介します。
実際の業務でも使用したため、備忘も込めて投稿します。
改行コードの種類
改行コードは2種類あります。
改行コード | 日本語名 | 正規表現 |
LF(line feed) | 改行 | \n |
CR(carriage return) | 行頭復帰 | \r |
システムによって使用されている改行コードが違い、片方または両方が使われます。
システム | 改行コード | 正規表現 |
UNIX系 | LF | \n |
Windows | CR+LF | \r\n |
実際のファイル内でどのように表記されているかは、catコマンドに「e」オプションを付与することで確認できます。
LFの場合は、行末に「$」が表示されます。
CRLFの場合は、「^M」「$」が表示されます。
改行コードの調べ方
改行コードを確認するには、fileコマンドを使用します。
CRLFが使用されていれば、with CRLF line terminators の表記があります。
無ければLFということになります。
変換方法
sedコマンドに「i」オプションを付けて実行します。
「i」オプションはファイルを直接編集するオプションになります。
LF ⇒ CRLF
sed -i ‘s/$/\r/g’ <ファイル名>
行末の「$」をCR「\r」に変換する。
CRLF ⇒ LF
sed -i ‘s/\r//g’ <ファイル名>
CR「\r」の部分を空白にする。(削除する)