NF = 最後に読み込んだ行の列数 - AWK
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
最後に読み込んだ行の列数です。o AWKは1行読み込むと、自動的に列に分割して、$1、$2、$3、、、に値を入れます。
o 行全体のデータは、$0に入っています。
**** 書式
--------
NF
--------
o NFは変数です。
**** 使用例
--------
{
for (i = 1; i <= NF; ++i) {
print $i "、おはようございます。";
}
}
--------
o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。
o 入力データ
--------
ミクさん リンちゃん レン君 ルカ様
--------
**** 機能
o 最後に読み込んだ行の列数です。
+ 列の区切り文字は、通常「半角空白、タブ(、改行文字)」ですが、FSで変更出来ます。
o この変数に値を代入すると、$0の値を自動変更(= 再構築)する処理系があります。
+ mawk, Gawkで列数を調整したい時に便利です。
o また、この変数に負の値にすると、強制終了する処理系があります。
o 次の操作は、NFの値を変更します。
+ 関数を呼び出さずに、1行読み込んだ時
+ getlineを、引数無しで呼び出した時
+ $0、$1など変数「$ + 数字」に値を代入した時
+ $0を更新した時は、自動的に$1などとNFが再設定されます。
+ $1など、数字が1以上の時は、その数字が NFよりも大きなときに限り、NFにその数字を設定します。
+ $1 = $1のように同じ値を代入しても、同じ動きをします。
+ NFの値を直接上書きした時
** 処理系に依存する動作
o この変数に値を代入した時、$0の値を自動変更(= 再構築)する処理系
+ Gawk on Windows 3.1.7
+ Gawk for Windows 3.1.6
+ mawk MBCS (32bit版) 1.3.3
+ Mawk for Windows 1.3.3
+ この時、各列の間にある区切り文字を、変数OFSの値で置き換えます。
+ NF = NFのように同じ値を代入しても、同じ動きをします。
+ これらの処理系では、NFを負の値にすると、強制終了します。
o この変数に値を代入した時、$0の値を変更しない処理系
+ original = the one true awk(updated May 1, 2007)
+ この処理系では、NFの値が負になっても、$0の値を参照する事が出来ます。
**** メモ
o 最後の列のデータを取り出す時は、$NF と書く方法が簡単です。
**** 確認した処理系
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
▼制作メモ
> RT = 最後に読み込んだ行の改行文字
FNR = 現在読み込み中のファイルから読み込んだ行数
NR = これまでに読み込んだ行数
+
ファイルからデータを読み込む
$0 = 最後に読み込んだデータ、1行分
$1 = 最後に読み込んだデータの1列目
(2010年9月9日追加。$0や$1との関係と負の値)