在分隔符处分割一个string,然后求和最后一个字段

我有一个string文件:

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

等等。 我想在第二个分割它:总结所有的整数。 例如,对于上面的列表,我想要做1+2+0+...

我尝试cut -d ":"但它只给了字段XC

你可以使用这种方式cutpaste

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

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

 perl -F/:/ -ane 'END {print "$x\n"} $x += $F[2]' inputFile -F/:/ sets colon as the split separator works with -a -a autosplit mode with -n splits each line into @F -n assume "while (<>) { ... }" loop around program 

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

awk -F:'{sum + = $ NF} END {print sum}'file_name

使用Python:

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