从 war 文件中的 xml 文件中获取值而不提取
Get a value from xml file inside a war file without extracting
我想从我的 war 文件中存在的 jsp 文件中读取一行。 jsp 文件的路径总是相同的,所以我知道确切的查找位置。如何在不提取整个 war 文件的情况下从 war 文件中的 jsp 中提取行?我不想提取,因为它至少需要几分钟才能完成,我只想从该行获取版本值 (1.2.3.210)。这就是结构的样子 -
war file name --> final.war
jsp location inside the war file --> folder1/folder2/version.jsp
line inside the jsp file --> <param><value>version=1.2.3.210</value></param>
一个.war
文件只是一个zip文件,所以我们可以使用unzip
做你想做的事。假设我有一个包含以下内容的文件 sample.war
:
Archive: ../sample.war
Length Date Time Name
--------- ---------- ----- ----
376 07-30-2007 16:26 hello.jsp
0 07-30-2007 16:26 images/
1441 07-30-2007 16:26 images/tomcat.gif
636 07-30-2007 16:26 index.html
0 07-30-2007 17:18 META-INF/
106 07-30-2007 17:18 META-INF/MANIFEST.MF
0 07-30-2007 16:26 WEB-INF/
0 07-30-2007 16:26 WEB-INF/lib/
813 07-30-2007 16:26 WEB-INF/web.xml
0 07-30-2007 16:26 WEB-INF/classes/
0 07-30-2007 16:26 WEB-INF/classes/mypackage/
1480 07-30-2007 16:26 WEB-INF/classes/mypackage/Hello.class
--------- -------
4852 12 files
我可以使用 unzip
将文件 index.html
提取到标准输出,如下所示:
unzip -p sample.war index.html
要从输出中获取特定行,您可以将其通过管道传输到 sed
。例如,要提取包含 <title>
:
的行
$ unzip -p sample.war index.html | sed -n '/<title>/p'
<title>Sample "Hello, World" Application</title>
这对我有用。我不必安装 jar,因为它已经在 CentOS
中可用
jar -xf final.war folder1/folder2/version.jsp
我想从我的 war 文件中存在的 jsp 文件中读取一行。 jsp 文件的路径总是相同的,所以我知道确切的查找位置。如何在不提取整个 war 文件的情况下从 war 文件中的 jsp 中提取行?我不想提取,因为它至少需要几分钟才能完成,我只想从该行获取版本值 (1.2.3.210)。这就是结构的样子 -
war file name --> final.war
jsp location inside the war file --> folder1/folder2/version.jsp
line inside the jsp file --> <param><value>version=1.2.3.210</value></param>
一个.war
文件只是一个zip文件,所以我们可以使用unzip
做你想做的事。假设我有一个包含以下内容的文件 sample.war
:
Archive: ../sample.war
Length Date Time Name
--------- ---------- ----- ----
376 07-30-2007 16:26 hello.jsp
0 07-30-2007 16:26 images/
1441 07-30-2007 16:26 images/tomcat.gif
636 07-30-2007 16:26 index.html
0 07-30-2007 17:18 META-INF/
106 07-30-2007 17:18 META-INF/MANIFEST.MF
0 07-30-2007 16:26 WEB-INF/
0 07-30-2007 16:26 WEB-INF/lib/
813 07-30-2007 16:26 WEB-INF/web.xml
0 07-30-2007 16:26 WEB-INF/classes/
0 07-30-2007 16:26 WEB-INF/classes/mypackage/
1480 07-30-2007 16:26 WEB-INF/classes/mypackage/Hello.class
--------- -------
4852 12 files
我可以使用 unzip
将文件 index.html
提取到标准输出,如下所示:
unzip -p sample.war index.html
要从输出中获取特定行,您可以将其通过管道传输到 sed
。例如,要提取包含 <title>
:
$ unzip -p sample.war index.html | sed -n '/<title>/p'
<title>Sample "Hello, World" Application</title>
这对我有用。我不必安装 jar,因为它已经在 CentOS
中可用jar -xf final.war folder1/folder2/version.jsp