LinuxでWindowsとLinux間の改行コードを変更する!(sed/tr)

Linux状でWindowsとLinux間の改行コードの変換を行います。

Windowsの改行コード(CRLF)をLinuxの改行(LF)コードに変更する!(sed)

sedコマンドで、「\r」を削除する方法で変換します。

$ sed -i 's/\r//g' test.txt
$ od -c test.txt
0000000   1   2   3  \n   4   5   6  \n
0000010

Linuxの改行コード(LF)をWindowsの改行コード(CRLF)に変更する!(sed)

Windowsの改行コードのファイルを用意します。

$ cat test.txt
123
456
$ od -c test.txt
0000000   1   2   3  \r  \n   4   5   6  \r  \n
0000012

sedコマンドで行末に「\r」を追加する方法で変換します。

$ od -c test.txt
0000000   1   2   3  \n   4   5   6  \n
0000010
$ sed -i 's/$/\r/g' test.txt
[usradmin@vmsrhe01 ~]$ cat test.txt
123
456
[usradmin@vmsrhe01 ~]$ od -c test.txt
0000000   1   2   3  \r  \n   4   5   6  \r  \n
0000012

Windowsの改行コード(CRLF)をLinuxの改行(LF)コードに変更する!(tr)

trコマンドで、「\r」を削除する方法で変換することもできます。

$ od -c test.txt
0000000   1   2   3  \r  \n   4   5   6  \r  \n
0000012
$ cat test.txt | tr -d '\r' > test2.txt
[usradmin@vmsrhe01 ~]$ od -c test2.txt
0000000   1   2   3  \n   4   5   6  \n
0000010

おわりに

Linux上で改行コードを変換する場合は、少しテクニックが必要です。可能かぎり、ファイル転送ソフトの機能でファイル転送をしながら改行コードを変更するようにしましょう。

関連記事

関連書籍(Amazon)

N/A