我正在使用 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/