![从组织为列和行的文件中提取值](https://linux22.com/image/77084/%E4%BB%8E%E7%BB%84%E7%BB%87%E4%B8%BA%E5%88%97%E5%92%8C%E8%A1%8C%E7%9A%84%E6%96%87%E4%BB%B6%E4%B8%AD%E6%8F%90%E5%8F%96%E5%80%BC.png)
我有一个包含五列的文件,格式如下:
1 213 1 545 0.0988697879 0.9084867680
像这样的有300行。我想从一行的第四列和第五列中获取值并执行数学运算,然后保存结果,并对所有 300 行重复该过程。
到目前为止,我发现的最接近解决方案的是使用以下命令构建数组
while IFS= read -a line; do printf "Line number %d:\n" $i; printf "%s\n" "${line[@]}"; let i++; done < "workfile.txt""
有哪些更好的方法可以解决这个问题?
答案1
可以使用 awk 操作字段,更多信息这里。以下单行代码将第 4 个和第 5 个字段相加,并将结果保存在输出文件中:
awk '{print $4 + $5}' input.file > output.file