首页 > 解决方案 > 当满足另一个条件时,如何计算与某个条件匹配的值?

问题描述

我有一个包含 10 列的 csv 文件。只有在第 3 列具有"CODE" 我需要使用 bash 脚本的值时,我才需要对第 4 列和第 5 列的行数求和。例如:

       3rd col, 4th col, 5th col
Line 1: DECODE     23       12
Line 2: CODE       10       20

Output: 10 + 20 = 30

标签: bash

解决方案


AWK 来救援:

$ cat foo.csv                         
1st col, 2nd col, 3rd col, 4th col, 5th col
1,1,DECODE,23,12
2,2,CODE,10,20

$ cat run.sh
#!/bin/bash  
awk -F "," '{ if ($3 == "CODE") print $4 + $5 }' foo.csv

$ sh run.sh 
30

推荐阅读