我在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文件的内容中搜索字符?
尝试将其指定为
—
harrymc
[[]
甚至三倍\\\[
。
zipgrep
是一个脚本。尝试询问作者,因为脚本可能已损坏。