用zipgrep搜索方括号


1

我在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文件的内容中搜索字符?


zipgrep是一个脚本。尝试询问作者,因为脚本可能已损坏。
DavidPostill

尝试将其指定为[[]甚至三倍\\\[
harrymc

Answers:


2

正如评论中所建议的那样:

$ 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

似乎工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.