Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

NFと$NFの違い

特殊変数のNFと$NFは、それぞれ明らかに異なった動きをします。
前者は項目数、後者は最後の項目の内容を格納しています。

実際のところ

以下のようなファイルがあったとします。

$ cat sample.txt 
foo vivit 42
bar 10
buzz 34
piyo 11

これについて、NFと$NFを適用する場合……

NFは「項目の数」

$ cat sample.txt | awk 'NF > 2'
foo vivit 42
$ cat sample.txt | awk '{ print " + " NF " item(s) : " $0 }'
 + 3 item(s) : foo vivit 42
 + 2 item(s) : bar 10
 + 2 item(s) : buzz 34
 + 2 item(s) : piyo 11

$NFは「最後の項目の内容」

$ cat sample.txt | awk '$NF > 10'
foo vivit 42
buzz 34
piyo 11

そんなわけで、「最後の行の最後の要素」とかいうわけのわからない事もできます。
そんなのやる位なら、tailかけてからの方が明らかに早いでしょうが

$ cat sample.txt | awk '{ buff = $NF }; END{ print buff }'
11