加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

使用awk合并两份文档

发布时间:2020-12-14 01:17:45 所属栏目:Linux 来源:网络整理
导读:如果使用awk分析两份文档,并且按照某一字段合并: 示例文件格式: file1 王姑娘 腿长120cm? a姑娘 腿长110cm b姑娘 腿长100cm file2 王姑娘? 冰雪聪明 a姑娘 温柔贤淑? b姑娘?古灵精怪 使用awk分析两份文本 awk ‘ { if (NR==FNR) {arraya[$1]=$2} if (NR!=

如果使用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,arrayb[i]}
结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读