如何打印特定行的最后一列?

时间:2016-12-04 21:19:52

标签: linux bash shell awk

我的datafile文件或多或少看起来像这样:

*** some text ***
Results
1     50
2    -75
3     80
*** some text ***

我想做的是:

  1. 找到包含字符串" Results"。
  2. 的行
  3. 列出这三个结果,但只有最后一列才有意义。
  4. 只显示积极的一面。
  5. 我试图用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不是数值。知道如何正确定义它吗?

1 个答案:

答案 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是最后一列,就会打印下一行的最后一列。