2010年4月19日月曜日

ファイルからデータを読み込む方法 - AWK

AWKの入出力とコマンド実行機能
AWKプログラムを書く
ファイルを 1行読み込むと、$で始まる変数にデータが入ります。

**** 変数について
o $0 = 1行分のデータが入っています。改行コードは入っていません。
o $1 = 行の最初の単語。初期設定では、半角空白やタブ文字で区切ります。
o $2 = 行の2番目の単語。$3以降も同様です。


**** 例
o テストデータ  in.txt
--------
あいうえお かきくけこ   さしすせそ
--------


o プログラム  a.awk
--------
{
  print "1番目 = " $1; # 「あいうえお」が入ります。
  print "2番目 = " $2; # かきくけこ
  print "3番目 = " $3; # さしすせそ
  print "1行分 = " $0; # あいうえお かきくけこ   さしすせそ
}
--------

    + 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。
    + 出てくる単語の意味は、「print = ファイルなどに書き出す
    + 「$0 = 最後に入力したデータ、1行分

o 実行コマンド例
--------
gawk -f a.awk in.txt > out.txt
--------



**** メモ
o 単語の区切り方を変更する時は、変数FSに区切り方を書きます。書式例は「タブ区切りでファイルを読み込む
o 初期設定では、半角空白やタブ文字が2つ以上並んでいる時、読み飛ばします。
o この他に、getline関数を使って読み込む方法もあります。


==
関連ページ:
    ▼AWKの入出力関数とコマンド実行機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > タブ区切りでファイルを読み込む
    AWKでバイナリ出力する(mawk, Gawk専用)
    AWKでバイナリ入力する(Gawk専用)
    +
    文字列を組み立てる