如何使用zipgrep单行命令在zip压缩包中搜索多个匹配字符串
正确实现方案
默认情况下zipgrep使用基础正则表达式(BRE)语法,该语法下|作为普通字符解析,不具备「或匹配」的功能,这是之前的命令失效的核心原因。你可以选择以下任意一种方案实现多模式检索:
方案1:开启扩展正则(最简洁)
添加-E参数启用扩展正则表达式(ERE),即可直接用|分隔多个匹配模式:
zipgrep -sE 'search_item1|search_item2|search_item3' test.zip
方案2:基础正则下转义分隔符
如果不开启扩展正则,需要对|做转义处理实现或匹配:
zipgrep -s 'search_item1\|search_item2\|search_item3' test.zip
方案3:多-e参数指定模式(无转义需求更稳妥)
通过多个-e参数分别传入每个搜索模式,不需要处理正则转义,适合模式本身包含特殊字符的场景:
zipgrep -s -e 'search_item1' -e 'search_item2' -e 'search_item3' test.zip
内容的提问来源于stack exchange,提问作者ran1n
相关产品推荐
相关产品推荐

