Если я правильно понимаю ваш вопрос, ниже должно работать:
ls *.zip | fgrep -f dates.txt | xargs -I{F} sh -c 'unzip -l {F} | grep -q house && echo FOUND: {F}'
Обратите внимание, что выше это упрощение, предполагая, что "чистые" *.zip
имена файлов, то есть без пробелов и кавычек.
Дистилляция:
ls *.zip | fgrep -f dates.txt
отфильтрует список файлов, используя dates.txt
в качестве fgrep
шаблонов | xargs -I{F} sh -c '...'
будет использовать каждую прочитанную строку ( имя файла .zip) для выполнения sh -c '...'
, где фрагмент оболочки ...
будет ссылаться на каждое имя файла .zip как {F}