FNR{print 0,a[1]}’ 1.txt 2.txt
?...命令解释:NR表示的是读取的行数(NR会一直累加),FNR则表示读取的当前行数,先读完1.txt的行数再读2.txt的行数,所以其实NR==FNR 就表示读取1.txt的时候。...流程:
当读取1.txt时
第一行时:NR=0,FNR=0,
第二行时:NR=1,FNR=1,
……
最后一行时,NR=3,FNR=3,
然后开始读2.txt
读2.txt第一行时,NR=4,FNR=0...,此时NR>FNR,所以开始打印第一行1 ab aa
第二行时,NR=5,FNR=2,同样满足NR>FNR,所以开始打印第二行2 cd bb
……
2.txt最后一行时,NR=7,FNR=4,打印最后一行...5 de
从上面我们发现几个特点:
1、第二个文件有几行,就打印几行,因为只有读到第二个文件时,才满足NR>FNR,才能打印
2、NR、FNR都是从零开始计数,NR不清零,FNR读完一个文件后清零
3、