如何使用awk在右侧数据的基础上合并文件的左侧字段. [英] How to combine left side fields of file on the basis of right hand side data using awk.
本文介绍了如何使用awk在右侧数据的基础上合并文件的左侧字段.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果右侧数据很常见,我想合并左侧数据. 输入:
I want to combine the left hand side data if right hand side data is common. Input :
DAN|ab
NAB|ab
PAT|ab
DAN|asd
DAN|gg
NAB|re
DAN|rr
PAT|rr
NAB|sd
DAN|we
PAT|ww
输出应为:
DAN,NAB,PAT|ab
DAN|asd
DAN|gg
NAB|re
DAN,PAT|rr
NAB|sd
DAN|we
PAT|ww
如果管道的右侧数据是通用的,则合并左侧数据. 请给我建议任何解决方案.
If right hand side data of pipe is common then merge the left hand side data. Please suggest me any solution.
推荐答案
awk -F"|" '{a[$2]=a[$2]","$1;next}END{for(i in a)print substr(a[i]"|"i,2)}' your_file
已测试:
> cat temp
DAN|ab
NAB|ab
PAT|ab
DAN|asd
DAN|gg
NAB|re
DAN|rr
PAT|rr
NAB|sd
DAN|we
PAT|ww
> awk -F"|" '{a[$2]=a[$2]","$1;next}END{for(i in a)print substr(a[i]"|"i,2)}' temp
DAN|gg
DAN|asd
NAB|sd
NAB|re
DAN|we
DAN,PAT|rr
PAT|ww
DAN,NAB,PAT|ab
这篇关于如何使用awk在右侧数据的基础上合并文件的左侧字段.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文