如何只对文件的“尾部”执行 grep?
我正在尝试运行这个命令:
grep 'TEST COMPLETE' -L *.log
TEST COMPLETE 出现在最后几行,这个命令列出文件夹中所有还没有完成测试的文件(因为 -L
)。虽然日志非常大,但 grep
非常慢。
另一方面,我可以在尾部用管道传递 grep。 grep 几乎是即时的:
tail *.log | grep 'TEST COMPLETE'
但是我不能使用 -l
或 -L
参数,因为我现在正在 grep 管道输入而不是文件。所以使用列表文件参数运行它:
tail *.log | grep 'TEST COMPLETE' -L
只会输出:(标准输入)
有什么方法可以让 grep
搜索最后 10 行或类似的内容?
最佳答案
你可以在 for
循环中完成:
for log in *.log; do
if ! tail "$log" | grep -q 'TEST COMPLETE'; then
echo "$log"
fi
done
关于bash - 使用 grep 命令但仅用于文件的最后几行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55733878/