【发布时间】:2012-07-15 01:19:28
【问题描述】:
遇到这个问题,我正在用墙壁敲打我的头,请帮忙。
我有两个文件 Sheetthickness.k 包含一个初始厚度值和 minThick.k 包含最终厚度只有一个数字。我想计算厚度减少的百分比,所以我使用了。
fina="$(cat minThick.k)";
echo $fina
init="$(cat Sheetthickness.k)";
echo $init
echo |awk "{ print ($init-$fina)/($init) }" > LSDynaResponse.txt
在没有其他命令并且文件已经存在的shell中,它可以正常工作,但是当文件由软件创建然后使用这些命令时,它会出错。
awk: { print (-)/() }
awk: ^ syntax error
awk: { print (-)/() }
awk: ^ syntax error
awk: { print (-)/() }
awk: ^ unterminated regexp
还有其他优雅的方式来完成这项任务吗?
【问题讨论】:
-
@perreal:这是不正确的。您要么需要使用
echo通过stdin给AWK 一些东西来消费,要么在BEGIN块中进行计算。否则它将挂起等待输入。
标签: linux awk arithmetic-expressions