如何在 JAR 文件中搜索字符串
我的应用程序是在 Java EE 上构建的。
我在这个应用程序中大约有50个罐子。
是否可以搜索特定的关键字(实际上我想搜索关键字)?BEGIN REQUEST
我的应用程序是在 Java EE 上构建的。
我在这个应用程序中大约有50个罐子。
是否可以搜索特定的关键字(实际上我想搜索关键字)?BEGIN REQUEST
您可以在 Linux 或 OSX 上使用 zipgrep:
zipgrep "BEGIN REQUEST" file.jar
如果你想搜索一些罐子,请
find libdir -name "*.jar" -exec zipgrep "BEGIN REQUEST" '{}' \;
其中 是包含所有 jar 的目录。该命令也将以递归方式搜索子目录。libdir
对于Windows,您可以下载cygwin并在其下安装zipgrep:http://www.cygwin.com/
编辑 1
要查看找到表达式的文件的名称,您可以执行以下操作:
find libdir -name "*.jar" | xargs -I{} sh -c 'echo searching in "{}"; zipgrep "BEGIN REQUEST" {}'
编辑 2
编辑 1 的更简单版本
find libdir -name "*.jar" -print -exec zipgrep "BEGIN REQUEST" '{}' \;
谨慎:这不是一个准确的答案,它只是一种快速的启发式方法。如果你需要找到一个类的名称(例如,哪个jar有类Foo?)或者一个方法名称,那么这可能有效。
grep --text 'your string' your.jar
这将像搜索文本一样搜索 jar 文件。这更快,因为它不会扩展存档,但这也是它不太准确的原因。如果你需要详尽无遗,那么这不是你应该使用的方法,但是如果你想在退出之前更快地尝试一些东西,这是一个好方法。zipgrep
从man grep
-a, --text Process a binary file as if it were text; this is equivalent to the --binary-files=text option.