Cygwin Grep压缩了.txt文件中变量的文件

Cygwin Grep压缩了.txt文件中变量的文件,cygwin,xargs,Cygwin,Xargs,我压缩了如下文件: 20191231_aaa.zip 20191231_bbb.zip 20191231_ccc.zip 20191230_aaa.zip 20191230_bbb.zip 20191230_ccc.zip 20191229_aaa.zip 20191229_bbb.zip 20191229_ccc.zip 我想要grep如果文件 *aaa.zip和*bbb.zip 包含以下文件: 名称中有指定的单词,如“house” 仅适用于格式为dates.txt文件的指定日期,如:20

我压缩了如下文件:

20191231_aaa.zip

20191231_bbb.zip

20191231_ccc.zip

20191230_aaa.zip

20191230_bbb.zip

20191230_ccc.zip

20191229_aaa.zip

20191229_bbb.zip

20191229_ccc.zip

我想要grep如果文件

*aaa.zip和*bbb.zip

包含以下文件:

  • 名称中有指定的单词,如“house”
  • 仅适用于格式为dates.txt文件的指定日期,如:20191230、20191220、20191210:
20191230

20191220

20191210

我认为:


ls | xargs grep dates.txt | unzip-l | grep house

如果我正确理解了您的问题,下面应该可以:

ls *.zip | fgrep -f dates.txt  | xargs -I{F} sh -c 'unzip -l {F} | grep -q house && echo FOUND: {F}'
请注意,以上是一种简化,假设文件名为“clean”
*.zip,即没有空格或引号

蒸馏:

  • ls*.zip | fgrep-f dates.txt
    将使用
    dates.txt
    作为
    fgrep
    模式过滤文件列表
  • |xargs-I{F}sh-c'.'.
    将使用读取的每一行(filename.zip)来执行
    sh-c'.
    ,其中
    ..
    shell代码段将引用每个filename.zip作为
    {F}