2011年7月29日金曜日

改行コード。Windows / UNIX / Mac の違いについて - AWK

AWKの入出力とコマンド実行機能
システムが異なると、改行コードも異なります。
他のコンピューターで作ったテキストファイルを読み書きするような時には、改行コードにも気を配ります。


**** 改行コードの規格
o 以下、バイナリモードで読み書きする時の書き方です。
o Windowsの改行コードは「\r\n」です。16進数で、0x0D0A
o UNIXの改行コードは「\n」です。16進数で、0x0A(Mac OS Xも、多分これです。)
o 古いMac OSの改行コードは「\r」です。16進数で、0x0D

o HTTPの通信で使う(推奨の)改行コードは「\r\n」です。16進数で、0x0D0A
    + 但し、改行コードの「\n」だけを書くようなサンプルプログラムも多いです。


**** 使用例
o 実行コマンド
--------
gawk -v BINMODE=2 -f a.awk > out.txt
--------


o AWKプログラム a.awk
--------
BEGIN {
  print "Windowsの改行コードは\\r\\nです。ミクさん。\r\n";
}
--------



**** メモ
o 通常は、「\n」が改行の意味を持ちます。
    + 利用環境で使われている改行コードを、自動的に追加してくれます。
o 改行コードを自分で正確に指定したい時は、変数 BINMODEを使って、バイナリモードでファイルを開きます。
    + 変数 BINMODEは、Gawkとmawkでサポートしている機能です。


==
関連ページ:
    ▼AWKの入出力関数とコマンド実行機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > GawkでUTF-8のファイルを読み込む時の注意点
    Gawkで、UTF-8のファイルからBOMを除去する
    getline = ファイル(やパイプ)から1行読み込む