我已经在 Cygwin 和 git-bash 中尝试过这个 - 结果相同。
使用简单的 grep,[
可以使用反斜杠对模式中的字符进行转义,以指示[
要搜索文字字符。
但这不适用于 zipgrep:
$ zipgrep '\[HashMap' /c/Users/greerob/.gradle/caches/modules-2/files-2.1/com.twitter/jsr166e/1.1.0/7558d13056c1f98be269fed58ae5a8e76c7616d4/jsr166e-1.1.0-sources.jar
grep: Unmatched [, [^, [:, [., or [=
即使转义两次也不起作用:
$ zipgrep '\\[HashMap' /c/Users/greerob/.gradle/caches/modules-2/files-2.1/com.twitter/jsr166e/1.1.0/7558d13056c1f98be269fed58ae5a8e76c7616d4/jsr166e-1.1.0-sources.jar
grep: Unmatched [, [^, [:, [., or [=
并且尝试指定整个模式是一个固定字符串而不是正则表达式也不起作用:
$ zipgrep -F '[HashMap' /c/Users/greerob/.gradle/caches/modules-2/files-2.1/com.twitter/jsr166e/1.1.0/7558d13056c1f98be269fed58ae5a8e76c7616d4/jsr166e-1.1.0-sources.jar
grep: conflicting matchers specified
[
如何在 zip 文件的内容中搜索字符?
答案1
正如评论中所建议的:
$ zipgrep '[[]HashMap' /c/Users/greerob/.gradle/caches/modules-2/files-2.1/com.twitter/jsr166e/1.1.0/7558d13056c1f98be269fed58ae5a8e76c7616d4/jsr166e-1.1.0-sources.jar
似乎有效。