답변1
사용XML 스타:
xmlstarlet sel -t -m '//APPLIANCE' -v 'concat(NAME/text()," ",STATUS/text())' -nl file.xml
주어진 데이터에 대해 다음이 생성됩니다.
METASYNC Online
DELTA Offline
XML 문서에서 모든 노드를 찾고 중간 공백을 사용하여 APPLIANCE
해당 값과 하위 노드를 연결함으로써 NAME
이를 수행합니다 . 각각의 결과를 출력한 후 STATUS
끝에 개행 문자를 삽입합니다.-nl
APPLIANCE
열 헤더와 더 나은 표 형식을 원하는 경우:
( echo 'Device_name Status'
xmlstarlet ...as above... ) | column -t
답변2
이것을 사용하여 원하는 출력을 얻을 수 있습니다
$ echo "DEVICE-NAME STATUS" ; grep -e NAME -e STATUS <filename> | sed 's#NAME##g ; s#STATUS##g ; s#<>## ; s#</>##' | xargs -L2 | column -t
산출:
DEVICE-NAME STATUS
METASYNC Online
DELTA OFFLINE