免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1884 | 回复: 3
打印 上一主题 下一主题

[文本处理] 能否实现文本按每一列字段前几位的特征值进行拼接 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-07 18:49 |只看该作者 |倒序浏览
求助,能否实现文本按每一列字段前几位的特征值进行拼接的功能,例如把文本
  1_|aaaaa
  2_|bbbbbb
  3_|ccccccc
  1_|dddddddd
  2_|eeeeeeeee
  3_|fff
  1_|11
  2_|222
  3_|3333
  1_|444
  2_|55
  3_|6
10_|aaaaa
11_|bbbbbb
12_|ccccccc
10_|dddddddd
11_|eeeeeeeee
12_|fff
10_|11
11_|222
12_|3333
10_|444
11_|55
12_|6

转换成
  1_|aaaaadddddddd11444
  2_|bbbbbbeeeeeeeee22255
  3_|cccccccfff33336
10_|aaaaadddddddd11444
11_|bbbbbbeeeeeeeee22255
12_|cccccccfff33336

或者这样也行
  1_|aaaaa  1_|dddddddd  1_|11  1_|444
  2_|bbbbbb  2_|eeeeeeeee  2_|222  2_|55
  3_|ccccccc  3_|fff  3_|3333  3_|6
10_|aaaaa 10_|dddddddd 10_|11 10_|444
11_|bbbbbb 11_|eeeeeeeee 11_|222 11_|55
12_|ccccccc 12_|fff 12_|3333 12_|6

感谢~~

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-11-07 19:29 |只看该作者
本帖最后由 Herowinter 于 2014-11-07 19:31 编辑

回复 1# reallytrue
  1. awk 'BEGIN{FS="_\\|";OFS="_|"} {a[$1]=a[$1]""$2} END{for(i in a)print i,a[i]}' i|sort -n
  2. 1_|aaaaadddddddd11444
  3. 2_|bbbbbbeeeeeeeee22255
  4. 3_|cccccccfff33336
  5. 10_|aaaaadddddddd11444
  6. 11_|bbbbbbeeeeeeeee22255
  7. 12_|cccccccfff33336
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
3 [报告]
发表于 2014-11-07 19:56 |只看该作者
  1. awk -F\| '{a[$1]=a[$1]""$2}END{for(i in a)print i"|"a[i]}'
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2014-11-07 23:42 |只看该作者
回复 1# reallytrue

$ awk -F'|' '{if(!a[$1]){N[++c]=$1}a[$1]=a[$1]$2}END{for(n=1;n<=c;n++)print N[n] FS a[N[n]]}' FILE
  1_|aaaaadddddddd11444
  2_|bbbbbbeeeeeeeee22255
  3_|cccccccfff33336
10_|aaaaadddddddd11444
11_|bbbbbbeeeeeeeee22255
12_|cccccccfff33336

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP