使用awk合并两份文档
如果使用awk分析两份文档,并且按照某一字段合并:
示例文件格式:
file1
王姑娘 腿长120cm
a姑娘 腿长110cm
b姑娘 腿长100cm
file2
王姑娘 冰雪聪明
a姑娘 温柔贤淑
b姑娘 古灵精怪
使用awk分析两份文本
awk '{ if (NR==FNR) {arraya[$1]=$2} if (NR!=FNR) { arrayb[$1]=$2}}END{for (i in arraya) {print i,arraya[i],arrayb[i]}} ' file1 file2
NR,表示awk开始执行程序后所读取的数据行数.
FNR,与NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计.
判断NR与FNR是否相等就可以判断是否是两份不同的文件
if (NR==FNR)
if (NR!=FNR)
因为文件的第一列相等,所以我们分别将两份文件的第一列元素取值做为数组的key
{arraya[$1]=$2}
{ arrayb[$1]=$2}
然后遍历数组的key,分别取出两个value的值即可
END{for (i in arraya) {print i,arraya[i],arrayb[i]}
结果: