나는 (적어도 나를 위해) 흥미로운 문제에 부딪 혔습니다. 의 XML 파일을 보자XML 쌍을 bash로 구문 분석합니다.
는<a>pair1a</a>
<b>pair1b</b>
<c>randomtext</c>
<a>pair2a</a>
<b>pair2b</b>
...
<b>
태그 <a>
태그 뒤에 항상 간다. 내가 원하는 것은 <a>
과 <b>
사이의 내용을 저장하고 함께 연결하는 것입니다. bash에서이 문제를 어떻게 해결해야 데이터에 쉽게 액세스하고 관리 할 수 있습니까? 연관 배열이나 모든 것을 한 배열에 넣고 b의 내용을 구분 기호로 구분하는 방법을 생각했습니다. (까다로울 수도 있습니다.) 내 접근 방식은 모든 것을 두 개의 배열로 grep하는 것보다 훨씬 간단했다. 그런 다음 단일 인덱스 (btw, perl 정규식에 익숙해졌으며 grep이 사용하는 것)를 사용하도록했다. 이 일을 더 간단하게 할 수 있습니까?
a_Array=$(curl --silent -L $xml | grep -oP '(?<=<a>).*?(?=</a>)')
b_Array=$(curl --silent -L $xml | grep -oP '(?<=<b>).*?(?=</b>)')
'xml_grep'을 사용해 보셨나요? – esauvisky
코드 구조를 변경할지 여부는 확실하지 않지만 그러한 도구는 알고 있습니까? – shookees
절대로, 당신의 문제를 오해했습니다. 그것은 꽤 이상한 xml btw입니다. 코드에 어떤 문제가 있습니까? – esauvisky