庆典合并多条线路 [英] bash merge multiple lines

查看:119
本文介绍了庆典合并多条线路的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个文件如下:

  id001成功:100
id002成功:99
id002失败:1
id003失败:100
id004成功:50
id004失败:50

我想把它格式化为:

  id001成功:100
id002成功:99失败:1
id003失败:100
id004成功:50失败:50

可能有人给我一个解决方案吗?谢谢!


解决方案

 的awk'{a [$ 1] = A [$ 1] FS $ 2} END {为(我的)打印我,一个由[i]}'文件

替代红宝石(1.9 +)

  $红宝石-ane'BEGIN {a = Hash.new}; A [$ F [0] =#{a [$ F [0]}#{$ F [1]}; END {{a.each | X,Y |把#{X}#{Y}}}'文件

I have a file looks like:

id001 success:100
id002 success:99
id002 failed:1
id003 failed:100
id004 success:50
id004 failed:50

I want to format it as:

id001 success:100
id002 success:99 failed:1
id003 failed:100
id004 success:50 failed:50

Could someone give me a solution? Thanks!

解决方案

awk '{a[$1]=a[$1] FS $2}END{for(i in a) print i,a[i]}' file

Alternative Ruby(1.9+)

$ ruby -ane 'BEGIN{a=Hash.new};a[$F[0]]="#{a[$F[0]]} #{$F[1]}"; END{ a.each{|x,y| puts "#{x}#{y}" }}' file

这篇关于庆典合并多条线路的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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