2010年6月29日火曜日

NR = これまでに読み込んだ行数 - AWK

AWKの入出力関数とコマンド実行機能
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
これまでに読み込んだ行数です。
o 入力ファイルを複数指定した時、読み込んだ行数の合計になります。
o AWKプログラム内でファイルを指定して読み込んだ分は、行数に数えません。
o 現在読み込み中のファイルから読み込んだ行数を知りたい時は、変数FNRを使います。

**** 書式
--------
NR
もしくは
NR = 行番号
--------

o NRは変数です。
o 行番号 -- 好きな数字を入れる事が出来ます。
   + 小数点以下のある値を入れると、Gawkは整数に丸めます。


**** 使用例
--------
END {
  print "全部で " NR "行読み込みました。ミクさん。";
}
--------

o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。


**** 機能
o これまでに読み込んだ行数の合計です。
   + パターンに一致しない行も、読み込んでいたら数えます。
   + 途中でexitすると、exit以降読み飛ばした行は数えません。
o AWK実行時に入力ファイルを複数指定した時、今までに読み込んだ行数を合計します。
o getlineを使って読み込む場合
   + ファイルを指定せずに読み込んだ分は、行数に数えます。
   + ファイルを指定して読み込んだ分は、行数に数えません。
   + ファイル名に FILENAME (= 読み込み中のファイル名)を指定しても、行数に数えません。

** 処理系に依存する動作
o NR = 1.5 のように、小数点以下を持つ値を設定した場合
   + Gawkは整数に丸めます。この場合は、1になります。
   + mawkとoriginal-awkは、1.5のまま設定します。


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3
o Mawk for Windows 1.3.3
o original = the one true awk(updated May 1, 2007)


==
関連ページ:
    ▼AWKの入出力関数とコマンド実行機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > ERRNO = 入出力系の最新エラーメッセージ
    FS = 読み込んだ行を列に分割する時の区切り文字
    RS = 1行読み込む時の改行文字
    +
    FNR = 現在の入力ファイルから読み込んだ行数
    NF = 最後に読み込んだ行の列数
    $0 = 最後に読み込んだデータ、1行分
(2010年8月16日追加。手動更新した場合)