grep 등을 사용하여 XML 파일에서 특정 태그를 검색하면서 시작 태그와 끝 태그 사이의 내용만 표시하려면 어떻게 해야 합니까? 제가 찾고 싶은 정확한 태그는 다음과 같습니다.
<max-diskusage>1024000000</max-diskusage>
하지만 저는 라벨이 아닌 1024000000 부분만 얻고 싶습니다.
이는 바이트 단위의 저장 크기입니다. 가능하면 이를 1GB로 변환하거나 결과를 GB로 변환합니다.
답변1
xmlstarlet
XML 문서의 태그 인스턴스를 구문 분석하고 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
.