LinuxとWindows、またはMacとで各種データをやり取りする場合に問題になるのが、文字コードや改行コードの違いです。本記事では、Linuxのコマンドを利用して、文字コードや改行コードを確認・変換する方法をお伝えします。
PCで使われる文字コードや改行コードは、機種やOS、アプリによって異なります。そのため、Windowsで作成した文書をLinuxで開くと文字化けしたり、改行がおかしくなったりすることが少なくありません。もちろん逆の場合も同じことが起こります。そこで本記事では、データで使われている文字コードや改行コードを確認し、変換する方法をお教えします。
そこでこの章では、まずはファイルの改行コードを確認する方法と、それを変換する方法をお伝えします。
ファイル中の改行コードは、元々は電気式の通信用タイプライターであるテレタイプを接続して印刷する際の改行のコマンドでした。タイプライターでは、改行の際に、
現状、改行コードには以下の3つのパターンがあります。
Linuxで改行コードを調べるには、nkfやcatなどいくつかのコマンドが利用できます。以下の項では、Linuxでそれぞれのコマンドを利用して「text.txt」の改行コードを調べる例を挙げます。
文字コードと改行コードを変換するLinuxのnkfコマンドで改行コードを調べる場合、「nkf -g text.txt」とすると、次の章で紹介する文字コード表示の後に、以下のように改行コードが表示されます。
テキストファイルの中身を表示するLinuxのcatコマンドで改行コードを調べる場合、「cat -e text.txt」とすると、catでファイルの内容が表示される際に、行末に改行コードが記されます。catで-eオプションを使った場合、改行コードは以下のように表示されます。
$…………改行コードはLF
^M$……改行コードはCR+LF
^M………改行コードはCR
ファイルの種類を調べるLinuxのfileコマンドで改行コードを調べる場合、「file text.txt」とすると以下のように表示されます。
ダンプコードを表示するLinuxのodコマンドで改行コードを調べる場合、「od -c text.txt」とすると、ファイルの内容がASCIIコードで表示されますので、行末の改行コードが以下のように表示されます。
\n………改行コードはLF
\r\n……改行コードはCR+LF
\r………改行コードはCR
Linuxで改行コードを調べるだけでなく変換するには、やはりnkfなどのコマンドを利用できます。以下の項では、Linuxでそれぞれのコマンドを利用して、改行コードがWindowsのCR+LFの「text.txt」を、Linuxの改行コードLFの「text_lf.txt」に変換する例を挙げます。
文字コードと改行コードを変換するnkfコマンドで改行コードを変換する場合は、改行コードをLFに変更する「-d」オプションを使って、
テキストファイルの文字を置換するtrコマンドで改行コードを変換する場合は、削除オプションの「-d」を使ってCR+LFのCR(\r)を削除します。
1 / 3
続きを読む