我使用“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