grep jar 文件中特定名称的最快方法?

ars*_*nal 7 grep find

我试图找到所有spring名称中包含的罐子。我正在使用 Windows 并使用 cygwin 来运行 linux 命令。我下面的命令看起来正确吗?

find . -name "*.jar" -exec jar tf '{}' \| grep -H "spring" \;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它仍在处理中,还没有在屏幕上得到结果。使用特定名称 grep jar 文件的任何快速方法?

例如,下面是包含 spring 的有效 jar 文件 -

spring-web.jar
spring-core.jar
test-spring.jar 
Run Code Online (Sandbox Code Playgroud)

iru*_*var 4

我不相信该命令通过参数jar接受多个文件,因此据我所知,一次调用处理所有文件是不可能的。通过避免对每个文件调用一次 exec来加快速度的一种选项如下.jarjar.jarfind.jar

find . -name '*.jar' -exec sh -c \
'for f; do  jar -tf "$f" | grep --label="$f" "spring"; done' sh {} +
Run Code Online (Sandbox Code Playgroud)