首页 > 解决方案 > 如何使用 csv 文件作为 bash 中基本算术运算的输入

问题描述

我已将数据存储在neckrev_dim.csv文件中,结构如下

subjectID,dim3,pixdim3 
MR44825,405,0.625

我也有一个单独的subjects.csv,只包含所有的 subjectID

MR44825
MR55843

现在我想在使用 bash 的基本算术运算中使用这些数据。

subjlist=subjects.csv
for subj in ` cat $subjlist `
do
    dim3=$(grep -w '$subj' neckrev_dim.csv | cut -d ',' -f 2)
    pixdim3=$(grep -w '$subj' neckrev_dim.csv | cut -d ',' -f 3)
    total_length=$(($dim3*$pixdim3))
    echo $total_length
done

这会导致以下错误:

syntax error: operand expected (error token is "*")

我认为问题在于grep,但我无法弄清楚。

提前致谢!

标签: bashcsvmath

解决方案


您需要将单引号更改为$subj. 单引号不会扩展变量。


推荐阅读