如何打印与最后一行的第一个字段匹配的所有行

Sam*_*meh 2 regex shell awk command-line sed

过去两天我一直在尝试这样做.我阅读了很多教程,并学到了很多新东西,但到目前为止,我无法实现我想要做的事情.假设这是命令行输出:

Johnny123   US  224
Johnny123   US  145
Johnny123   US  555
Johnny123   US  344
Robert  UK  4322
Robert  UK  52
Lucas   FR  344
Lucas   FR  222
Lucas   FR  8945
Run Code Online (Sandbox Code Playgroud)

我想打印匹配'最后一行的第一个字段(Lucas)'的行.

所以,我想打印出来:

Lucas   FR  344
Lucas   FR  222
Lucas   FR  8945
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 我正在尝试打印的每次都有不同的行数,所以我不能做只返回最后3行的事情.
  • 第一个字段没有我可以用来打印的特定模式.

jay*_*ngh 6

这是使用tac和的另一种方式awk:

tac file | awk 'NR==1{last=$1}$1==last' | tac
Lucas   FR  344
Lucas   FR  222
Lucas   FR  8945
Run Code Online (Sandbox Code Playgroud)

tac只有在订单很重要时才需要最后一个.