我有一个包含以下内容的文件:
string1_204
string2_408
string35_592
我需要摆脱string1_,string2_,string35_等等,并添加204,408,592来获取值。 所以输出应该是1204。
我可以取出string1_和string 2_但是对于string35_592,我有5_592。 我似乎无法让命令正确地做我想做的事情。敬请任何帮助:)
答案 0 :(得分:5)
使用awk:
awk -F_ '{s+=$2}END{print s}' your.txt
输出:
1204
说明:
-F_ sets the field separator to _ what makes it easy to access
the numbers later on
{
# runs on every line of the input file
# adds the value of the second field - the number - to s.
# awk auto initializes s with 0 on it's first usage
s+=$2
}
END {
# runs after all input has been processed
# prints the sum
print s
}
答案 1 :(得分:3)
如果您对coreutils / bc替代感兴趣:
<infile cut -d_ -f2 | paste -sd+ - | bc
输出:
1024
cut
以下划线字符(-d_
)拆分每一行,并仅输出第二个字段(-f2
)。数字列传递给paste
,-s
将它们连接在由加号字符(-d+
)分隔的行(bc
)上。这被传递给{{1}},计算并输出总和。