Grep-файлы для содержимого

Grep-файлы для содержимого

Я использую команды cygwin 'find' и 'grep' для поиска файлов по некоторому шаблону. Я делаю это:

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   

Связанный контент