我有一个或多或少像这样的文件:
*** 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/