免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5366 | 回复: 22

[文本处理] 请问如何将第一列相同的第二列合到一行 [复制链接]

论坛徽章:
0
发表于 2015-03-13 10:36 |显示全部楼层
XP_002960178    GO:0055114
XP_002960178    GO:0003824
XP_002960417    GO:0034968
XP_002960417    GO:0018024

想合成这样的
XP_002960178    GO:0055114     GO:0003824
XP_002960417    GO:0034968     GO:0018024

请问如何实现,谢谢大家!

论坛徽章:
7
申猴
日期:2014-12-21 13:57:24巳蛇
日期:2014-12-25 22:27:08申猴
日期:2015-01-19 08:07:36辰龙
日期:2015-02-04 11:40:06处女座
日期:2015-02-04 11:40:412015年亚洲杯之卡塔尔
日期:2015-03-06 12:01:322015年亚洲杯之乌兹别克斯坦
日期:2015-03-31 13:43:57
发表于 2015-03-13 10:44 |显示全部楼层
python3 实现
  1. #!/usr/bin/env python3

  2. def func(file):
  3.     f_dict = {}
  4.     with open(file) as f:
  5.         for line in f:
  6.             t1, t2 = line.strip().split()
  7.             #print(t1,t2)
  8.             if t1 not in f_dict.keys():
  9.                 f_dict[t1] = [t2,]
  10.                 continue
  11.             f_dict[t1].append(t2)
  12.     return f_dict

  13. print(func("test.txt"))
复制代码

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2015-03-13 10:44 |显示全部楼层
本帖最后由 zsszss0000 于 2015-03-13 10:45 编辑
  1. awk '{a[$1]=a[$1]"\t"$2}END{for(i in a)print i"\t"a[i]}' file
复制代码
  1. XP_002960178            GO:0055114      GO:0003824
  2. XP_002960417            GO:0034968      GO:0018024
复制代码

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
发表于 2015-03-13 10:52 |显示全部楼层
回复 1# chenjiali1


try:
  1. sed -r 'N;s/(\S+)(\s.*)\n\1(\s.*)/\1\2\3/;P;D' file
复制代码

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
发表于 2015-03-13 11:16 |显示全部楼层
本帖最后由 我是一隻羊 于 2015-03-13 11:21 编辑
  1. awk '{a[$1]=(!a[$1]?$1:a[$1])" "$2}END{for(i in a)print a[i]}' inputfile
复制代码
  1. sed -r 'N;s/\n[^ ]+//g' inputfile
复制代码

论坛徽章:
0
发表于 2015-03-13 11:18 |显示全部楼层
谢谢大家,厉害!

论坛徽章:
20
卯兔
日期:2015-01-26 22:05:142015亚冠之萨济拖拉机
日期:2015-09-10 15:15:282015亚冠之阿尔希拉尔
日期:2015-09-25 17:37:53程序设计版块每日发帖之星
日期:2015-10-03 06:20:00程序设计版块每日发帖之星
日期:2015-12-09 06:20:00CU十四周年纪念徽章
日期:2015-12-17 09:07:15程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:342015亚冠之广州富力
日期:2015-08-27 19:29:56每日论坛发贴之星
日期:2015-08-26 06:20:002015亚冠之阿尔希拉尔
日期:2015-05-18 17:26:27
发表于 2015-03-13 13:26 |显示全部楼层
awk 'FNR==1{s=$1}s!=$1{print s" "y;s=$1;y=""}{y=y?y" "$22}END{print s" "y}' urfile

论坛徽章:
0
发表于 2015-03-13 14:05 |显示全部楼层
用你这一命令都达不到效果的  是我弄错了么回复 3# zsszss0000


   

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2015-03-13 14:19 |显示全部楼层
本帖最后由 zsszss0000 于 2015-03-13 14:20 编辑

我这里是可以运行的啊 001.png 回复 8# 樱048


   

论坛徽章:
1
巨蟹座
日期:2014-11-03 17:19:43
发表于 2015-03-13 18:02 |显示全部楼层
没看懂 大神 帮忙解释下呗,多谢了。回复 3# zsszss0000


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP