0

我有一个制表符分隔的文件,我想对文件中存在的列执行一些数学计算。

让文件名sndf具有$tag一些整数值,我想首先找到第 3 列和第 2 列的值之间的差异,然后将第 4 列的值除以中的值$tag再次将结果除以第 3 列和第 2 列的值的差异,最后结果乘以 100。

cat $sndf | gawk '{for (i = 1; i <= NF; i += 1) {
    printf "%f\t"  $3 -$2 "\t",  (((($4/"'$tag'")/($3-$2)))*100);
} printf "\n"}'>normal_wrt_region

该命令将答案写入输出文件 4 次而不是 1 次.....你们都可以提出改进建议吗?谢谢你

解决方案:亲爱的,我已经解决了问题,感谢大家阅读问题并投入时间。

4

1 回答 1

2

该命令将答案写入输出文件 4 次而不是 1 次,你们都可以提出改进建议吗?

如果不需要,不要使用 for 循环?

cat $sndf | gawk '{ printf "%f\t"  $3 -$2 "\t", (((($4/"'$tag'")/($3-$2)))*100) }'
于 2011-05-09T08:54:24.577 回答