我的datafile
文件或多或少看起来像这样:
*** some text ***
Results
1 50
2 -75
3 80
*** some text ***
我想做的是:
我试图用awk
命令解决我的问题,对于每个结果看起来像这样:
res1=$(awk '/Results/{nr[NR+1]}; NR in nr' datafile | awk '{print $NF}')
我希望得到第一个积极的结果:
If [ $res1 -gt 0 ]; then
echo "$res1"
fi
但不是预期的结果,我得到了错误Integer expression expected
。因此,它得出结论变量res1
不是数值。知道如何正确定义它吗?
答案 0 :(得分:1)
这样的事可能有用:
$ awk '$0 == "Results" { f = 3; next } f && f-- && $NF > 0 { print $NF }' input
50
80
基本上,当f
行传递时,变量Results
设置为3。
只要f > 0
和$NF > 0
$NF
是最后一列,就会打印下一行的最后一列。