この文字列の改行コードなんだっけ?というに時たまにお世話になります。
まずは改行コードの種類をおさらい
CR (Carriage Return / キャリッジリターン)
\r
復帰を意味する。古い Mac OS (バージョン9まで) で改行コードとして採用されていた。
LF (Line Feed / ラインフィード)
\n
改行を意味する。Linux や macOS で改行コードとして採用されている。
CRLF
\r\n
上記2つが連続したもの。Windows などで改行コードとして採用されている。
可視化するコマンド達
hexdump コマンドを使用する場合 (パイプライン)
$ echo -e "AAA\r\nBBB" | hexdump -c
0000000 A A A \r \n B B B \n
od コマンドを使用する場合 (パイプライン)
$ echo -e "AAA\r\nBBB" | od -c
0000000 A A A \r \n B B B \n
ファイルの文字コードを視覚化する場合は以下。
$ cat tmp.txt | od -c
0000000 A A A \r \n B B B \n
printf コマンドを使用する場合 (変数)
$ var=$(echo -e "AAA\r\nBBB")
$ printf '%q' "$var"
$'AAA\r\nBBB'