grep最后n个跨文件匹配

Pau*_*xon 5 shell grep

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

grep somestring*.log

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

hav*_*exz 7

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

ls *.log | while read fn; do grep -iH create "$fn" | tail -1; done
Run Code Online (Sandbox Code Playgroud)

tail -1-1 替换为N.( - H选项是打印文件名,否则如果你是单个文件中的grep则不会打印,这就是我们上面正在做的事情)

注意:上面的soln可以正常使用带空格的文件名.

对于从文件开头的N个匹配

grep -i -m1 create *.log
Run Code Online (Sandbox Code Playgroud)

-m1用N 替换1.