谁能帮忙解释一下awk 'FNR==NR{a[$1]=$2;next}NF>1{$2=a[$1]" "$2}1' 1.txt 2.txt
2个回答
展开全部
由NR=FNR为真时,判断当前读入的是第一个文件1.txt,然后使用{a[$1]=$2;next}循环将1.txt文件的第二个字段都存入数组a,并使用第一个字段作为下标引用.
由NR=FNR为假时,判断当前读入了第二个文件2.txt,然后跳过{a[$1]=$2;next},对第二个文件2.txt的每一行都判断字段数大于1的,执行{$2的赋值 a[$1]" "$2},此时变量$1为第二个文件的第一个字段,与读入第一个文件时,采用第一个文件第二个字段$1为数组下标相同.因此可以在此使用a[$1]引用数组。
由NR=FNR为假时,判断当前读入了第二个文件2.txt,然后跳过{a[$1]=$2;next},对第二个文件2.txt的每一行都判断字段数大于1的,执行{$2的赋值 a[$1]" "$2},此时变量$1为第二个文件的第一个字段,与读入第一个文件时,采用第一个文件第二个字段$1为数组下标相同.因此可以在此使用a[$1]引用数组。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询