在 java 命令输出中搜索文本

在 java 命令输出中搜索文本

我有一个包含多个 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(不包括Nain 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,但您可以将其更改为您想要运行的任何命令。

相关内容