我有一个包含多个 Jar 文件的文件夹。
* dummy.jar
* myjar-xx.jar
* myjar-yy.jar
使用查找,我需要找到以“myjar”开头的第一个文件
现在,我想 grep 使用发现的 Jar 文件内的 Manifest 文件的内容寻找命令。
我正在使用以下命令来检查清单文件的内容。
java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai
它在控制台上给出输出 -
Version: 2
Name: MyName
Company: ABC
现在,由于在控制台上我可以看到文件的内容,因此如何搜索包含“Name”的行是否存在“Na”?
答案1
如果我理解正确的话,你是说这个命令:
java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai
返回此输出:
Version: 2
Name: MyName
Company: ABC
并且您想要检查该输出是否包含以字符串开头Name:
并包含字符串的行Na
(不包括Na
in Name:
)。如果是这样,你可以这样做:
java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai |
| grep -q '^Name:.*Na' && echo YES
该-q
标志指示grep
不要打印其匹配项。0
如果找到匹配,它只是返回退出代码。因此,&& command
如果匹配成功,您可以使用来运行命令。在这里,我正在运行echo YES
,但您可以将其更改为您想要运行的任何命令。