0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Linux][code]改行コードとは_CRLF, CR, LF, \r\n, \r, \n

Last updated at Posted at 2025-03-05

CRLF, CR, LFとは

CRLF、CR、LFは、テキストファイルにおける「改行コード(改行文字)」の種類であり、テキストの「行の終わり」を示す制御コード

各改行コードの説明

1. CR (Carriage Return)

  • 制御コード: \r (ASCII: 13, 0x0D)
  • 意味: 「キャリッジリターン」
  • 動作: カーソルを行の先頭に戻す(横方向の移動)
  • 主な使用環境: 古いMac OS(Mac OS 9以前)

2. LF (Line Feed)

  • 制御コード: \n (ASCII: 10, 0x0A)
  • 意味: 「ラインフィード」
  • 動作: 次の行へ移動(縦方向の移動)
  • 主な使用環境: UNIX系OS(Linux, macOS)

3. CRLF (Carriage Return + Line Feed)

  • 制御コード: \r\n (ASCII: 13 10, 0x0D 0x0A)
  • 意味: 「キャリッジリターン」+「ラインフィード」
  • 動作: カーソルを行の先頭に戻し(CR)、次の行へ移動(LF)
  • 主な使用環境: Windows

改行コードの関係性

改行コード 制御コード ASCIIコード 主な環境
CR \r 13 (0x0D) 古いMac OS (Mac OS 9以前)
LF \n 10 (0x0A) UNIX系OS (Linux, macOS)
CRLF \r\n 13 10 (0x0D 0x0A) Windows

補足

^M とは

^M の意味

  • ^MCR(キャリッジリターン, \r を表す。
  • Linux/macOSで WindowsのCRLF形式のファイルを開いた際に表示される
  • キャレット記法 (^X) で制御文字を可視化する。
    • ^M → CR(キャリッジリターン, ASCII 13)
    • ^J → LF(ラインフィード, ASCII 10)

なぜ ^M が表示されるのか?

  • Windows: 改行コード \r\n(CRLF)
  • Linux/macOS: 改行コード \n(LF)
  • WindowsのCRが Linuxで不要な制御文字として ^M と表示 される。

改行コードの違いによる影響

  • WindowsのCRLFをLinuxで開くと ^M が表示される
  • LinuxのLFのみのファイルをWindowsで開くと改行が適切に認識されないことがある

^M の削除方法

1. sed コマンド

$ sed -i 's/\r//g' file.txt
$ tr -d '\r' < file1.txt
$ sed -i 's/^M//g' file.txt
$ tr -d '^M' < file1.txt

参考リンク

Ping-t

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?