我有一个可能非常大(10+ GB)的日志文件.我想找到表达式的最后一次出现.是否可以使用标准posix命令执行此操作?
以下是一些不太适合的类似问题的潜在答案.
tail -n <x> <file> | grep -m 1 <expression>:我不知道表达式有多远,所以我不知道<x>会是什么.它可能是之前的几GB,所以你要拖尾整个文件.我想你可以循环并递增<x>直到找到它,但是你会反复阅读文件的最后一部分.tac <file> | grep -m 1 <expression>:tac读取整个源文件.一旦发现某些输出,就有可能将某些东西连接到sigkill tac上?这会有效吗?如果它有帮助,表达式锚定在一行的开头,例如:"^foo \d+$".