Grep 檔案內容

Grep 檔案內容

我使用“find”和“grep”cygwin 命令來根據某種模式查找文件。我正在這樣做:

find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt |grep -i vbs 

它工作正常,我的文件名中包含“vbs”。但現在我需要做類似的事情,但我需要根據文件內容來尋找文件名,例如「vbs」不是文件名的一部分,而是文件內容的一部分。可以怎樣修改呢?也許是這樣的:

尋找 。 -iname '*.zip' -print -exec unzip -l {} \; 2> 錯誤.txt | xargs ???有人可以建議嗎?謝謝

答案1

由於您要 grep 檔案內容,-l因此列出 zip 檔案是不夠的。你需要實際解壓它。所以:

temp=`mktemp -d`    
find . -iname '*.zip' -print -exec unzip -d $temp {} \; 2> error.txt
grep -ir vbs $temp   

相關內容