0

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

所以基本上我有一个日志文件,内容如下:

Tom 
Paul 
Tom 
Steve 
Anthony 
Tom

我想输入一个类似这样的命令:

tail -1 /etc/logfile | grep Steve

并有这样的输出:史蒂夫

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

4

2 回答 2

3

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

grep Steve etc/logfile | tail -n 1

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

于 2013-04-24T21:32:36.280 回答
2

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

grep Steve /etc/logfile

然后得到史蒂夫的所有台词

tail -1

打印最后一个。

于 2013-04-24T21:17:55.263 回答