5
A
回答
7
嗯,我想的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.
1
這種情況下,袖口,但讀這How to do something to every file in a directory using bash?作爲一個起點。這是我的看法,假設每個文件只有最後20場比賽。
for i in *
do
if test -f "$i"
then
grep somestring $i | tail -n 20
fi
done
可能不完全正確,沒有文件在我面前檢查,但應該是一個起點。
1
for file in /path/to/logs/*.log
do
tail <(grep -H 'pattern' "$file")
done
這將通過最後10行默認列表列出過去的10場比賽爲tail
。如果你希望得到一個不同的號碼,然後下面將幫助 -
for file in /path/to/logs/*.log
do
tail -n number <(grep -H 'pattern' "$file")
done
其中number
可以是你的線
0
最後發生搜索模式在當前目錄下的每個日誌文件的數量:
find . -name \*log\* | xargs -I{} sh -c "grep --color=always -iH pattern {} | tail -n1"
首先發生搜索patte的RN在當前目錄下的每個日誌文件:
find . -name \*log\* | xargs -I{} sh -c "grep --color=always -iH pattern {} | head -n1"
與出現的編號替換1
在-n1
你想
或者您可以使用find
的-exec
選項,而不是xargs
find . -name \*log\* -exec sh -c "grep --color=always -iH pattern {} | tail -n1" \;
您可以使用-mtime
與find
限制了你的日誌文件的搜索,讓我們說5天
find . -mtime -5 -name \*log\* | xargs -I{} sh -c "grep --color=always -iH pattern {} | tail -n1"
相關問題
- 1. Grep:匹配前後的最大單詞
- 2. 匹配從串\最後線n \\\\\ N [^]] b
- 3. 只顯示grep的第n個匹配
- 4. grep匹配後的值
- 5. grep的文件從一個文件匹配的grep的結果
- 6. grep:匹配文字「+」
- 7. 跨多個文件匹配模式:perl或grep?
- 8. 計數文件的匹配使用grep
- 9. 匹配的grep
- 10. 列表匹配(最後N個字符匹配)
- 11. 最後第n行grep命令
- 12. sed,awk,grep匹配word 2文件
- 13. grep模式,匹配多個文件
- 14. 匹配文件名使用grep
- 15. 用grep匹配
- 16. 匹配的grep中
- 17. 匹配模式並打印後匹配一個字的grep
- 18. 正則表達式(grep)向後匹配
- 19. grep命令匹配
- 20. BASH grep與其中一個匹配後的多個參數+ n行
- 21. perl得到最後N次匹配的行內
- 22. grep與n個前導空格匹配的行
- 23. 如何獲得grep正則表達式匹配後的文本?
- 24. 在foreach循環中,awk/grep替換第一個匹配文本文件後的第二個匹配
- 25. grep「?」不匹配有效匹配
- 26. 最後匹配的符號
- 27. 與grep匹配的模式
- 28. grep的精確匹配線
- 29. grep的特定匹配
- 30. grep的精確匹配「/等」
使用'這樣ls'可以是一個非常糟糕的主意。這是[爲什麼](http://mywiki.wooledge.org/ParsingLs)? –
@Jaypal'非常糟糕的主意',以及如果上述情況下的日誌文件是由已知來源創建的,那麼過度設計soln是沒有意義的。如果他們不是,那麼我可以理解增加的複雜性。 – havexz
'grep模式文件|尾巴-1'會做 – Azi