linux下如何查找当前目录下所有jar包中包含AAA内容的class文件名 10

如:a.jarb.jar.n.jar多个jar包,每个jar包中都是.class文件,想列出这些jar包中包含AAA内容的class文件名或jar包名,就是想知道N个ja... 如:
a.jar
b.jar
.
n.jar
多个jar包,每个jar包中都是.class文件,想列出这些jar包中包含AAA内容的class文件名或jar包名,就是想知道N个jar包中哪个jar包中的class有包含AAA内容。
不能解开环境上的jar包,解开我就知道了 谢谢

find ./ -name "*.class" | xargs grep 'AAA' -l
展开
 我来答
百度网友853f739
2018-09-18 · TA获得超过146个赞
知道小有建树答主
回答量:110
采纳率:100%
帮助的人:88.6万
展开全部

试试这个:find . -name "*.jar"|awk '{print "jar -tvf "$1}'|sh|grep AAA

补充:题主的问题不解开jar包用命令解决不了,上述命令仅用于查找jar包中class文件名称包含AAA关键字的,而不是内容,下面的命令可以输出jar包名称及其含有AAA关键子名称的class文件:

find . -name "*.jar"|while read name; do echo file:$name;jar -tvf $name|grep AAA; done

另:在windows下当你双击打开jar包,然后双击class文件查看其内容,也是临时解压后打开的,所以要查看jar包中class文件的内容,你不解开怎么能做到呢?

要达到题主的目标,只能解开,方法如下:

编辑一个shell脚本,名称随意,如findAAA.sh,内容如下:

#!/bin/bash

find <path> -name "*.jar"|while read jarname    #这里<path>修改为你要在哪个目录下查找jar及class文件
do
    echo "Processing jar-file:$jarname"
    mkdir /tmp/jartmp    #临时解开放置的目录
    cd /tmp/jartmp
    jar -xf $jarname
    find . -name  "*.class"|while read cname
    do
        findflag=$(strings $cname|grep AAA)        #class文件都是二进制的,用strings查看
        if [ "$findflag"x != x ];then
            echo "Class File: $cname include keyword AAA"
        fi
    done
    rm -rf /tmp/jartmp  #删除临时文件
done

编辑好脚本后,sh findAAA.sh执行即可。

w3sky
2013-07-23 · TA获得超过7088个赞
知道小有建树答主
回答量:895
采纳率:100%
帮助的人:408万
展开全部
试试这个命令:jar -tvf *.jar | cat | grep AAA
手上meiyoulinux,没法试,你试试。
追问
思路是可以,但这样会残留大量class文件在环境中,不能解开jar
追答
那我也不会了,或许你可以找个工具来测试jar包中的文件。
找一找,应该有这样的程序
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
良玉小帝
推荐于2017-10-19 · 个人日常精心汇总合集
良玉小帝
采纳数:5925 获赞数:9451

向TA提问 私信TA
展开全部
都需要解压啊
然后才去判断
find . -name "*.jar"|awk '{print "jar -tvf "$1}'|sh|xargs grep AAA|awk -F: '{print $1}'|sort|uniq
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞扬秋鸽
2013-07-23 · TA获得超过833个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:104万
展开全部
jar tf a.jar b.jar c.jar | grep "AAA"
追问
jar包是未知的,有N个
追答
jar   tf   *.jar  |   grep "AAA"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式