- 论坛徽章:
- 0
|
g了一下,明白是awk是顺序处理file1、file2、file3...
所以新手来解释下高手ywlscpl代码- awk 'NR==FNR{a[$1]=$2}NR>FNR{print $1,a[$2]}' file2 file1
复制代码 1、NR=已处理的记录数;FNR= 当前文件处理的记录数,明确了这个,那么处理第一个文件时,NR是等于FNR的,处理第二个文件时,NR>FNR
2、所以高手ywlscpl的代码处理第一个文件file2时,只是数组赋值,因为此时NR没有>FNR,即为:
a[巴巴]=c
a[红]=b
a[西瓜]=d
a[中西]=f
3、继续处理第二个文件file1,这时满足NR>FNR的判断条件,所以打印print $1,a[$2],即为:
print 23,a[中西],a[中西]=d,所以输出是23,f
print 98,a[红],a[红]=b,所以输出是98,b
....................................................34,d
.....................................................53,c
总算搞明白了 |
|