2013年4月6日土曜日

LinuxとWindowsの改行コードの違いについて

LinuxとWindowsでは改行コードが違います。

Linuxでは、「ラインフィード(LF)」
Windowsでは、「キャリッジリターン+ラインフィード(CR+LF)」
と呼ばれる改行コードがそれぞれ使われています。

テキストの中身をみてみると、
Linuxでは、「\n
Windowsでは、「\r\n
となっています。

このように、LinuxとWindowsでは改行コードが異なるために、Perlなどのスクリプト言語を使ったり、LinuxとWindows間でデータのやり取りしたりしていると、この改行コードの違いで問題を生じるケースがあります。

ちなみに、この「\」なんですが日本のキーボードだと二種類存在します(´・ω・`)
1つは、キーボード上右端の「¥キー」、
もう1つは、キーボード下右端の「\キー」です。

Windows上では、「¥キー」も「\キー」もPerlなどでは「\n」として認識されます。

しかし、Linux上ではどうやら「¥キー」+「n」だと、改行コードとして認識してくれず、「¥n」という文字列として表示されてしまいます。

なので、Linux上でPerlなどのスクリプトを実行する際には、ちゃんと「\キー」+「n」と書く必要があります。

以下では、Linux上でのPerlスクリプトの実行例を示しています。
print "Hello¥n";
print "Have a nice day¥n";

# 実行
hello¥nhava a nice day¥n
print "Hello\n";
print "Have a nice day\n";

# 実行
hello
hava a nice day
※注意※
上記では、「¥」を全角で記述していますが、半角だとこのブログ上ではバックスラッシュとして表現されてしまうため、わざと全角にしてます。

0 件のコメント:

コメントを投稿