我有一个或多或少像这样的文件:

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

我想做的是:
找到包含字符串“results”的行。
列出这三个结果,但只有最后一列是重要的。
只显示积极的一面。
我试图用datafile命令来解决我的问题,每个结果如下:
res1=$(awk '/Results/{nr[NR+1]}; NR in nr' datafile | awk '{print $NF}')

我希望通过以下方式取得第一个积极成果:
If [ $res1 -gt 0 ]; then
echo "$res1"
fi

但我得到的不是预期的结果,而是错误awk。因此得出结论,变量Integer expression expected不是数值。知道如何正确定义吗?

最佳答案

类似的事情可能会奏效:

$ awk '$0 == "Results" { f = 3; next } f && f-- && $NF > 0 { print $NF }' input
50
80

基本上,当传递行f时,变量Results设置为3。
然后打印下一行的最后一列,只要f > 0$NF > 0$NF是最后一列。

关于linux - 如何打印特定行的最后一列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40963787/

10-11 16:46