在Linux中:打印以。开头的最后一行日志文件

时间:2013-04-24 21:14:31

标签: linux logging redhat tail

我试图让单个OS命令的输出显示日志文件的最后一行,以特定字符串开头。

所以基本上我有一个日志文件:

Tom 
Paul 
Tom 
Steve 
Anthony 
Tom

我想输入与此类似的命令:

tail -1 /etc/logfile | grep Steve

并输出如下: 史蒂夫

不幸的是,tail -1的输出只显示日志文件的最后一行...如果它匹配。我希望它从底部到顶部(最近到最旧)搜索日志文件,并打印匹配“Starts with”或grep的第一个条目。谢谢。我尝试了一堆尾巴,sed,猫和更少的组合...但我可能只是做了一些小错误并且错过了它。

2 个答案:

答案 0 :(得分:2)

反过来grep Steve /etc/logfile | tail -l

grep Steve /etc/logfile

获取史蒂夫然后

的所有行
tail -1

打印最后一个。

答案 1 :(得分:2)

如果日志足够小而您不想完全扫描它,那么

grep Steve etc/logfile | tail -n 1

将完成你的工作。如果文件非常大,你不想grep它,因为它会影响性能,所以我建议构建一个反向读取文件的脚本,并在第一次出现时停止。