如何在使用 awk 打印之前定义变量并进行浮点运算



我想这样做

grep E0 OSZICAR | tail -1 | awk -v var="$e0" '{vac = $5 - $var - 0.5 * 9.860; print vac}'

$e 0 是之前定义的 bash 变量。现在我们有错误消息:

awk:致命:尝试访问字段 -287

-287 是 $e 0 的中间部分

你应该使用:

grep E0 OSZICAR | tail -1 |
awk -v var="$e0" '{vac = ($5 - var - 0.5) * 9.860; print vac}'

请注意在awk中使用var而不是$var,并在子表达式周围使用括号。

你根本不

需要grep,也不需要tail

awk -v var="$e0" '/E0/{num=$5}END{print((num - var - 0.5) * 9.860)}' OSZICAR

相关内容

  • 没有找到相关文章