Log-Files

在文件夾中找到一個字元串以及它來自哪個文件?

  • July 23, 2011

我試圖在我的 /var/log 目錄中找到一些關鍵字,所以使用

cd /var/log 貓 * | grep關鍵字

我發現該字元串在該目錄中並查看它存在的行,但不知道它來自哪個文件。如何找到字元串,並查看它 cat 來自的文件?

grep可以將文件名作為參數。

cd /var/log
grep keyword *

如果您一次從多個文件中 grep,則該行來自的文件名將與找到的行一起列印。

如果您只向 grep 提供 1 個文件名,但無論如何都想在文件上顯示該名稱,請將-H選項傳遞給 grep - 如果您在命令行中使用萬用字元(例如*.txt)並且不知道有多少文件,這很有用將被搜尋)。

如果您還想顯示行號,那就是-n選項。

find /var/log -type f | xargs grep -H

或者

find /var/log -type f -name \*log | xargs grep -H

或(比 xargs 慢得多)

find /var/log -type f -exec grep -H {} \;

對於獎勵積分, grep -i 將使搜尋不區分大小寫(但速度較慢)

引用自:https://serverfault.com/questions/293397