Answers:
我猜你可以使用tail来只输出最后4GB左右的-c
音频
-c,--bytes = [+] NUM
输出最后NUM个字节;或使用-c + NUM从每个文件的字节NUM开始输出
您也可以通过设置和输入要开始的偏移量来对dd做一些操作,例如bs=1
skip
dd if=file bs=1024k skip=12g | grep something
我之所以发布此内容,是因为有些评论要求这样做。
我最终使用的是(15 GB文件)。它运行非常快,为我节省了大量时间。
tail -f -c 14G file | grep something
我还对同一文件做了非常基本的基准测试。我测试了:
grep xxx文件
//永久删除(> 5分钟)dd if = file bs = 1 skip = 14G | grep xxx
//非常快<1秒尾巴-c 14克| grep xxx
//很快<2秒
的tail
是只是有点短。
注意:使用的后缀g
和G
每个命令的不同(Ubuntu 15.10)
这不会回答“标题”问题,但可以完成您想做的事情。使用tac反转文件,然后使用grep查找您的字符串。如果您的字符串仅在文件中出现一次或已知次数,则让它运行直到找到已知的出现次数。这样,如果您对它在文件中位置的假设不正确,它将仍然可以找到它。如果确实要限制它,则可以使用head来完成。head命令将在tac和grep之间进行。
因此,命令如下所示:
tac < logfile | grep myString
tac
,谢谢!
LC_ALL=C grep
可能会加快速度。