我试图找到一个表达以下内容的脚本的推荐或想法: 请考虑以下文件内容示例:
a,b,c,d,5
x,y,d,4,9
l,s,y,10
s,9
some,text,does,not,matter,15
规则很简单:一串字符串分隔(可能的数字但没有逗号),中间有逗号,最后一个数字:str,str,str,...,number
我知道如何使用sort
命令对文件进行排序,但我希望将所有行与相同的字符串相加,直到数字为止。请考虑以下示例:
a,b,c,d,e,5
a,b,c,d,4
a,b,c,d,e,10
输出将是:
a,b,c,d,e,15
a,b,c,d,4
线条的顺序并不重要。
我认为第一步是对文件进行排序。然后我们应该以某种方式分割线并得到值,以便我们可以求和它们,但是如何?
答案 0 :(得分:0)
Awk
解决方案:
awk 'BEGIN{ FS = OFS = "," }
{ num = $NF; $NF = ""; a[$0] += num }
END{ for (i in a) print i a[i] }' file
输出:
a,b,c,d,e,15
a,b,c,d,4