我想这样做
grep E0 OSZICAR | tail -1 | awk -v var="$e0" '{vac = $5 - $var - 0.5 * 9.860; print vac}'
$ e0是之前定义的bash变量。现在我们收到错误消息:
awk:致命:尝试访问字段-287
-287是$ e0
的整数部分答案 0 :(得分:0)
您应该使用:
grep E0 OSZICAR | tail -1 |
awk -v var="$e0" '{vac = ($5 - var - 0.5) * 9.860; print vac}'
请注意在awk中使用var
代替$var
,并在子表达式周围使用括号。
答案 1 :(得分:0)
您根本不需要grep
或tail
:
awk -v var="$e0" '/E0/{num=$5}END{print((num - var - 0.5) * 9.860)}' OSZICAR