2014-03-06 2 views
0

다음 형식의 파일 100 개를 검색해야합니다.bash 스크립트의 특정 패턴 뒤 패턴 검색

<dependencies> 
<a1 build="true"> 
<a2 build="false"> 
<a3 build="false"> 
<deployments> 
<a1 build="false"> 
<a2 build="true"> 
<a3 build="false"> 

적어도 1 개의 배포가있는 모든 파일을 build = "true"로 찾아야합니다. 문제는 문자열 배포 후에 검색을 시작하여 build = "true"가 아닌 위치에 종속성이 검색되도록하는 방법입니다.

+0

각 파일의 총 내용은 전부입니까? – Scrutinizer

답변

0
awk 'FNR == 0 { dep = 0; } 
    /<deployments>/ { dep = 1; } 
    /build="true"/ && dep { print FILENAME; nextfile; }' file1 file2 ... 
+0

그것은 {print FILENAME; dep = 0; 다음 파일; }', 안돼? – Scrutinizer

+0

덕분에, 고쳐 줬습니다. – Barmar

+0

실제로 제 제안은 아직 완료되지 않았습니다. 첫 번째 파일에 빌드가 없다면 두 번째 파일에는 dep가 1로 남아 있습니다. 그래서'dep'가 0으로 설정되어야한다고 생각합니다. 'FNR == 1 {}'조건, – Scrutinizer