谁能帮忙解释一下awk 'FNR==NR{a[$1]=$2;next}NF>1{$2=a[$1]" "$2}1' 1.txt 2.txt

 我来答
良玉小帝
2018-03-06 · 个人日常精心汇总合集
良玉小帝
采纳数:5925 获赞数:9451

向TA提问 私信TA
展开全部
由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]引用数组。
albumin
2018-03-06 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2321万
展开全部
1.txt 与2.txt第一字段相等时,将两个文件的第二个字段连接起来。

FNR表示总记录数,NR表示当前文件记录数,FNR==NR表示当前在处理第一个文件,a[$1]=$2建立第一个字段为索引的数组 ,保存第二字段。在第二个文件找到一样的字段时,两个文件的第二个字段相加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式