我想这样做
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