特殊変数の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