awk-13

本文介绍了一种使用awk命令处理两个文件的方法,通过创建数组来匹配第一个文件中的元素,并与第二个文件进行对比,若第一个文件中存在对应元素,则将两者合并;若不存在,则使用特殊字符填充。这种方法适用于需要对两份数据进行简单合并处理的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

file1
aaa 111
ccc 222
ddd 333
file2
ccc 555
eee 666
ttt 777
ppp 888
合并后的文件为
ddd 333
eee     666
aaa 111
ttt     777
ppp     888
ccc 222 555
规则:如果file1的第一列有相应的列,第二个没有的话就用空格或者是tab补齐。
处理方法:
 awk  'NR==FNR{a[$1]=$2;next}NR!=FNR{a[$1]=a[$1]?a[$1]" "$2:"\t"$2}END{for(i in a)print i,a[i]}'  file1 file2
前面是进行数组的赋值,后面写的是一种判断,如果a[$1]=a[$1]说明的是前面的元素出现过,如果出现过的话,直接将$2补在后面,如果没有出现过,就输出一个tab,然后在输出文件二中的$2。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值