如何在Linux中使用awk或sed进行算术运算并将结果传送到文件

有这个问题,我正在用墙打我的头,请帮忙。

我有两个文件Sheetthickness.k,其中包含一个初始厚度值和minThick.k,其中包含最终厚度只有一个单一的数字。 我想计算厚度的百分比减less,所以我用。

fina="$(cat minThick.k)"; echo $fina init="$(cat Sheetthickness.k)"; echo $init echo |awk "{ print ($init-$fina)/($init) }" > LSDynaResponse.txt 

在没有其他命令的shell中,文件已经存在,那么它可以很好地工作,但是当这些文件是由软件创build的,然后使用这些命令的时候,就会出错。

 awk: { print (-)/() } awk: ^ syntax error awk: { print (-)/() } awk: ^ syntax error awk: { print (-)/() } awk: ^ unterminated regexp 

任何其他优雅的方式来做这个任务?

这听起来像你有空文件或根本没有文件,尝试像这样:

 fina="$(cat minThick.k)" || echo "No min file!!" [[ -z $fina ]] && echo "Null min value!!" echo $fina init="$(cat Sheetthickness.k)" || echo "No init file!!" [[ -z $init ]] && echo "Null init value!!" echo $init echo "($init-$fina)/($init)" | bc -l > LSDynaResponse.txt