如何在jar中查找文件而不解除它并从命令行在编辑器中打开?

时间:2015-03-31 19:01:06

标签: linux bash shell jar grep

我有一个foo.jar,它有类,一个lib目录和一个META-INT目录。

我正在尝试查找此jar中是否存在persistence.xml并在vi编辑器中打开它。

我尝试了以下内容。

tar tf foo.jar | grep 'persistence.xml'

显示META-INF/persistence.xml

我想知道是否可以首先在jar中找到该文件,然后在可能的情况下在单个命令行中使用vi打开。

2 个答案:

答案 0 :(得分:1)

实际上并不是单个命令,但在一行中你可以按如下方式执行:

jar=foo.jar; filename=$(unzip -l "$jar" | grep  'persistence.xml' | awk '{print $4}'); test -n "$filename" && vim <(unzip -qc "$jar" "$filename")

首先,您必须设置要评估的jar文件,然后命令正在查找与该模式匹配的文件名。最后,如果文件名是非零长度字符串,则在vim编辑器中打开文件。

答案 1 :(得分:-1)

.jar文件实际上只是一个扩展名不同的.zip文件。

vim可以在.jar中打开文件而无需跳过箍!