AWK显示最后一场比赛的行号

时间:2015-06-03 09:20:35

标签: regex bash awk

我是AWK的新手。有谁知道如何使用awk打印文件的最后一个匹配的行号。 这是Test.txt文件内容的一小部分:

CLOSE #140,value=140
WAIT = #14039,value=143
CLOSE #140,value=144
WAIT #0,value=155
WAIT = #14039,value=158
CLOSE #140,value=160

这是我到目前为止使用的代码 成功第一线:

awk -F= '{if($NF >= 143 && $NF <= 158){print NR,exit}}' Test.txt

但最后一行

awk -F= '{if($NF >= 143 && $NF <= 158){a=$0}} END{print a,NR}' Test.txt

它只打印出保持匹配行和文件的最后一行号。 如何获得最后一场比赛的行号? 请帮我一些建议。

1 个答案:

答案 0 :(得分:4)

使用a = NR代替a = $0(因为它是您想要记住的行号,而不是行本身)。

除此之外,编写

可能会更加愚蠢
awk -F= '$NF >= 143 && $NF <= 158 { a = NR } END { print a }' Test.txt

{if(){}}有点难看。