![쉘스크립트를 사용하여 XML 시작 태그를 종료 태그로 구문 분석하는 방법은 무엇입니까?](https://linux55.com/image/204854/%EC%89%98%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20XML%20%EC%8B%9C%EC%9E%91%20%ED%83%9C%EA%B7%B8%EB%A5%BC%20%EC%A2%85%EB%A3%8C%20%ED%83%9C%EA%B7%B8%EB%A1%9C%20%EA%B5%AC%EB%AC%B8%20%EB%B6%84%EC%84%9D%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음과 같은 XML 파일이 있습니다 sample.xml
.
<m:properties>
<d:>ABCD</d:>
<d:>1234</d:>
<d:>0048</d:>
<d:>0.0</d:>
</m:properties>
<m:properties>
<d:>EFGH</d:>
<d:>5678</d:>
<d:>1111</d:>
<d:>9.0</d:>
</m:properties>
원하는 출력은 다음과 같습니다.
ABCD,1234,0048,0.0
EFGH,5678,1111,9.0
누구든지 스크립트 작성을 도와줄 수 있나요?
답변1
XML이 이름이 지정된 단일 루트 태그에 포함되어 있다고 가정하면 root
유사한 허용 XML 파서를 사용합니다 xq
(yq
https://kislyuk.github.io/yq/) CSV 생성:
xq -r '.root."m:properties"[]."d:" | @csv' sample.xml
그러한 닫는 태그가 없으면 동적으로 추가할 수 있습니다.
{
echo '<root>'
cat sample.xml
echo '</root>'
} | xq -r '.root."m:properties"[]."d:" | @csv'
결과:
"ABCD","1234","0048","0.0"
"EFGH","5678","1111","9.0"