2017-02-17 55 views
2

我有一個字符串的文件:在分隔符分割字符串,總結最後一個字段

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

等。我想在第二個:分割它並且總和所有整數。例如,對於上面的列表我想要1+2+0+...

我試過cut -d ":"但它只給出字段XC

+0

不,他們在不同的行 – Ssank

+0

如果我的回答在下面似乎很有幫助,用'^'標記答案_accepted_作爲答案,以便這篇文章可以對將來訪問的某個人有用 – Inian

回答

0

如果您安裝了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 
1

可以使用cutpaste這種方式:

paste -s -d+ <(cut -f3 -d: file) | bc 
  • <(cut ...) =>使用進程替換所提取的數字發送到paste
  • paste -s -d+ =>將數字轉換上多行這種格式1+2+3然後被送到bc進行數學運算
+0

看起來更乾淨,可以執行'cut -f3 -d:file | paste -s -d + - | bc' –

0

這可以用awk來完成,試試這個或者你可以用列號替換$ NF。

的awk -F: '{和+ = $ NF} END {打印總和}' file_name中

0

使用Python:

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