bash - 如何使用 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
,但我无法弄清楚。
提前致谢!
解决方案
您需要将单引号更改为$subj
. 单引号不会扩展变量。
推荐阅读
- javascript - 我有一个关于从存储在 lowdb 中的记录中获取特定字段的问题
- node.js - 如何发布没有任何 babel 依赖的 npm 模块?
- google-app-engine - 应用引擎自定义域不默认为 HTTPS
- kibana - 如何在 kibana 网址中包含索引“标题”?
- javascript - 是否可以修改网页的源并重新加载该页面而不是从服务器而是从编辑的源?
- go - 一个关于 Go Channel 死锁的简单例子以及为什么
- python-3.x - 如何在键值数据库中进行并行化?
- python - tensorflow.data 批处理方法不批处理数据集中的文本行
- sql - 如何替换句子中的特定单词而不替换 SQL Server 中的子字符串
- wix - Wix 工具集 - 使用计算机名称和 IIS Web 应用程序别名的 URL 快捷方式