在分隔符处拆分字符串并将最后一个字段求​​和

时间:2017-02-17 03:02:12

标签: linux bash awk

我有一个字符串文件:

XC:a:1
XC:b:2
XC:c:0 

等等。我想在第二个:拆分它并将所有整数相加。例如,对于上面的列表,我想做1+2+0+...

我尝试了cut -d ":",但它只提供了字段XC

4 个答案:

答案 0 :(得分:1)

如果你安装了perl;你可以在一行中做到这一点。

{{1}}

答案 1 :(得分:1)

您可以这样使用cutpaste

 paste -s -d+ <(cut -f3 -d: file) | bc
  • <(cut ...) =&gt;使用流程替换将提取的数字发送到paste
  • paste -s -d+ =&gt;将多行上的数字转换为此格式1+2+3,然后将其输入bc进行数学

答案 2 :(得分:0)

这可以使用awk完成,试试这个,或者你可以用列号替换$ NF。

  

awk -F:&#39; {sum + = $ NF} END {print sum}&#39; FILE_NAME

答案 3 :(得分:0)

使用Python:

python -c "print(sum(int(line.split(':')[-1]) for line in open('filename')))"