Shell 脚本编写以及 gawk 和算术运算的使用
我有一个制表符分隔的文件,我想对文件中存在的列执行一些数学计算。
让文件名是 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 次,而不是一次... ..你们都可以提出改进建议吗? 谢谢
解决方案:亲爱的大家,我已经解决了问题,感谢大家阅读问题并投入时间。
I have a tab delimited file and I want to perform some mathematical calculations on the columns present in file.
let the file name be sndf
and $tag
have some integer value, I want to first find difference between the values of column 3 and 2 then divide column 4 value with the value in $tag
again divide the resultant with the difference in values of column 3 and 2 and final result is multiplied by 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
the command is writing answer 4 times instead of one time to the output file..... can u all suggest an improvement?
thank you
SOLUTION: Dear all, I have solved the problem, thank you all for reading the problem and investing your time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果不需要,就不使用 for 循环?
Don't use the for loop if you don't need one?