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