匹配文件的记录与awk中另一个文件的字段值

时间:2014-01-03 01:21:05

标签: bash file csv scripting awk

我想在CSV文件的字段中总结值 应该通过读取另一个文件来检查匹配, 说我们有CSV_file:

adam,18
denis,19
julie,17
adam,15
max,20
julie,19

和一个简单的txt文件,其中包含:

adam
julie

我需要的是总结18,15,17,19 我怎么能用awk轻松做到这一点?

2 个答案:

答案 0 :(得分:1)

awk 'NR==FNR{ s[$1]+= $2; next} {t+=s[$1]} END{ print t}' FS=, csv-file names.txt

答案 1 :(得分:0)

假设names.txt是:

adam
julie

values.txt是:

adam,18
denis,19
julie,17
adam,15
max,20
julie,19

然后,您可以使用grep的{​​{1}}标志,该标志从文件中读取模式,每行一个模式,并返回与-f匹配任何模式的所有行。然后我们只使用values.txt来解析数字和总和:

awk