如何使用awk在右侧数据的基础上合并文件的左侧字段. [英] How to combine left side fields of file on the basis of right hand side data using awk.

查看:63
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆