글쎄, 기본적으로 xml 파일을 입력 받아 특정 XML 태그의 텍스트를 추출하는 스크립트를 작성했습니다. 그러나 다중 행 텍스트를 가져 와서 특수 문자를 허용 할만큼 똑똑하지는 않습니다. 텍스트 형식은 태그 아래 정의 된대로 그대로 유지해야합니다.sed - shell 스크립트를 사용하여 XML 태그에서 텍스트를 추출하십시오.
<nick>Deminem</nick>
<company>XYZ Solutions</company>
<description>
/**
*
* «Lorem» ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
* tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
* At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
* no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
* consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
* magna aliquyam erat, sed diam voluptua.
*
**/
</description>
위의 스크립트는 각각의 특정 태그의 텍스트를 추출하고 새로운 valueArray에 할당 :
다음은 XML 입력입니다. sed에 대한 나의 명령은 기본이지만 항상 여분의 마일을 기꺼이 가려고합니다.
tagsArray=(nick company description)
noOfElements=${#tagsArray[@]}
for ((i=0;i<$noOfElements;i++)); do
OUT=`grep ${tagsArray[${i}]} filename.xml | tr -d '\t' | sed -e 's/^<.*>\([^<].*\)<.*>$/\1/' `
valueArray[${i}]=${OUT}
done
@AnderLindahi - 이러한 도구는 스마트 XML 처리를 위해 의미되지 않기 때문에 그래 그 나오지도/AWK를 통해 진정한 구문 분석 XML은 쉬운 일이 아니다입니다. 하지만 안타깝게도 sed를 사용하는 ** schell 스크립트 **를 고수하는 것이 제 요구 사항입니다. – Deminem
@AnserLindahi - [xsltproc] (http://linuxcommand.org/man_pages/xsltproc1.html)은 Mac OSX 및 Unix가 사전 설치된 패키지로 제공됩니까? – Deminem
@Deminem : 셸 스크립트를 사용하기 위해서는 스크루 드라이버로 나무를 자르는 것과 같은 방법이 필요합니다. 그것은 할 수 있지만 꽤되지 않습니다. –