NRとFNRのちがいは、
NRが通し番号なのに対して、FNRがファイル毎に振られる番号であるという点があります。
実際のところ
以下のようなファイルがあったとします。
$ tail 111.txt 000.txt ==> 111.txt <== abc withdrawal def payment xyz deposit xxx balance ==> 000.txt <== 20081010 1123 xxx 20081011 1234 def 20081012 0933 xyz 20081013 0512 abc 20081013 0717 def
ためしに、NRとFNRを描写させると、ちゃんと番号が違っている事が確認できます。
$ gawk '{print NR":"FNR}' 111.txt 000.txt
1:1
2:2
3:3
4:4
5:1
6:2
7:3
8:4
9:5
これを生かして、「最初のファイルに置換表」、「次のファイルに置換対象」といった運用が可能です。
ひとつのawkファイルで完結するのでif-else地獄にならず済みますね。
$ gawk 'NR==FNR{a[$1]=$2} NR!=FNR{$3 = a[$3]; print} ' 111.txt 000.txt
20081010 1123 balance
20081011 1234 payment
20081012 0933 deposit
20081013 0512 withdrawal
20081013 0717 payment