Bash
在 java 命令輸出中搜尋文本
我有一個包含多個 Jar 文件的文件夾。
dummy.jar
myjar-xx.jar
myjar-yy.jar
使用 find,我需要找到以“myjar”開頭的第一個文件
現在,我想 grep 使用find命令找到的 Jar 文件中的 Manifest 文件的內容。
我正在使用以下命令來檢查清單文件的內容。
java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai
它在控制台上提供輸出 -
Version: 2 Name: MyName Company: ABC
現在,由於在控制台上我可以看到文件的內容,我如何搜尋包含“名稱”的行是否存在“Na”?
如果我理解正確,你說的是這個命令:
java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai
返回此輸出:
Version: 2 Name: MyName Company: ABC
並且您想檢查該輸出是否包含以字元串開頭
Name:
並包含字元串的行Na
(不包括Na
inName:
)。如果是這樣,你可以這樣做:java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai | | grep -q '^Name:.*Na' && echo YES
該
-q
標誌告訴grep
不要列印其匹配項。0
如果找到匹配項,它只會返回退出程式碼。&& command
因此,如果匹配成功,您可以使用執行命令。在這裡,我正在執行,echo YES
但您可以將其更改為您想要執行的任何命令。