使用 Grep 文件查找内容

使用 Grep 文件查找内容

我正在使用“find”和“grep”cygwin 命令来根据某种模式定位文件。我正在这样做:

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

它工作正常,我的文件名中包含“vbs”。但现在我需要做类似的事情,但我需要根据其内容找到文件名,例如“vbs”不是文件名的一部分,而是文件内容的一部分。如何修改它?也许是这样的:

find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt | xargs ??? 有人能给点建议吗?谢谢

答案1

由于您要 grep 文件内容,-l列出 zip 文件是不够的。您需要实际解压缩它。所以:

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

相关内容