shell - grep 文件中的最后 n 个匹配项

标签 shell grep

我正在使用 grep 在一组文件中提取行:

grep somestring *.log

是否可以将每个文件的最大匹配数限制为每个文件的最后 n 个匹配项?

最佳答案

好吧,我认为 grep 不支持从文件末尾限制 N 个匹配,所以这就是你必须做的

ls *.log | while read fn; do grep -iH create "$fn" | tail -1; done

替换 tail -1 -1 带 N。(-H 选项是打印文件名,否则如果您在单个文件中使用 grep 则不会打印文件名,而这正是我们在上面所做的)

注意:上面的 soln 可以很好地处理带有空格的文件名。

对于从文件开头开始的 N 个匹配项
grep -i -m1 create *.log

替换 -m1 1 与 N。

关于shell - grep 文件中的最后 n 个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9011841/

相关文章:

在多个文件夹中编译C程序

linux - 是否可以将两个 tr 命令合二为一?

linux - 树莓派关机脚本

python 中的curl --interface 等价物

linux - grep 无法匹配另一个文件中的 1 个文件的内容

arrays - 如何对数组使用 Perl 的 grep 函数?

带有行号的 Ruby grep

python - 需要将csv文件合并成一个然后将csv导入到mysql中的表中

regex - 对于多个文件中的每一行,提取包含 "XXXX ms"的行,其中 XXXX 是一个数字 > 到给定值

linux - 计算网络服务器日志中每个 URI 的请求和状态代码