我是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
它只打印出保持匹配行和文件的最后一行号。 如何获得最后一场比赛的行号? 请帮我一些建议。
答案 0 :(得分:4)
使用a = NR
代替a = $0
(因为它是您想要记住的行号,而不是行本身)。
除此之外,编写
可能会更加愚蠢awk -F= '$NF >= 143 && $NF <= 158 { a = NR } END { print a }' Test.txt
{if(){}}
有点难看。