xmlstarlet을 사용하여 일치하는 XPath를 인쇄하시겠습니까?

xmlstarlet을 사용하여 일치하는 XPath를 인쇄하시겠습니까?

모든 일치 항목을 가져오고 두 번째 단계에서 모든 항목을 업데이트된 문자열(이 경우 여러 줄 스크립트)로 대체하여 오래된 구성 항목을 수정하기 위해 많은 XML 파일을 반복하고 싶습니다. xmlstarlet예를 들어 XPath를 사용하여 요소의 값을 쿼리/선택하고 인쇄하는 방법을 알고 있습니다.

xmlstarlet sel -t -v '//hudson.tasks.Shell/command' $xml

또는 다음을 사용하여 모든 XPath를 나열하는 방법

xmlstarlet el -a $xml

유효한 목록을 출력하는 방법이 있습니까?XPath나중에 이 XPath 문자열을 사용하여 두 번째 단계의 값을 업데이트하려면 모든 일치 항목에 대한 표현식을 사용하시겠습니까? 예를 들어

maven2-moduleset/postbuilders/hudson.tasks.Shell[1]/command
maven2-moduleset/postbuilders/hudson.tasks.Shell[2]/command

현재 내가 찾은 유일한 해결책은 el출력에서 ​​경로를 계산한 다음 (bash를 사용하여) 인덱스별로 반복하는 것이었습니다.

관련 정보