Java 명령 출력에서 ​​텍스트 검색

Java 명령 출력에서 ​​텍스트 검색

여러 Jar 파일이 포함된 폴더가 있습니다.
* dummy.jar
* myjar-xx.jar
* myjar-yy.jar

find를 사용하여 "myjar"로 시작하는 첫 번째 파일을 찾아야 합니다.

이제 다음을 사용하여 발견된 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) 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실행하려는 명령으로 변경할 수 있습니다.

관련 정보