XML 파일에서 여는 태그와 닫는 태그 사이의 내용만 표시하는 방법은 무엇입니까?

XML 파일에서 여는 태그와 닫는 태그 사이의 내용만 표시하는 방법은 무엇입니까?

grep 등을 사용하여 XML 파일에서 특정 태그를 검색하면서 시작 태그와 끝 태그 사이의 내용만 표시하려면 어떻게 해야 합니까? 제가 찾고 싶은 정확한 태그는 다음과 같습니다.

<max-diskusage>1024000000</max-diskusage>

하지만 저는 라벨이 아닌 1024000000 부분만 얻고 싶습니다.

이는 바이트 단위의 저장 크기입니다. 가능하면 이를 1GB로 변환하거나 결과를 GB로 변환합니다.

답변1

xmlstarletXML 문서의 태그 인스턴스를 구문 분석하고 max-diskusage해당 값을 추출한 다음 GNU를 사용하여 numfmt바이트 수를 SI 단위로 변환하는 데 사용됩니다 .

xmlstarlet sel -t -v '//max-diskusage' -nl file | numfmt --to=si

질문의 짧은 예에서는 file문자열을 반환합니다 1.1G. --to=iec대신 (기존의 2의 거듭제곱 크기를 얻으려면)을 사용하세요 --to=si. 이는 를 반환합니다 977M. --to=si --round=down를 얻으려면 사용하십시오 1.0G.

관련 정보