에 외삽 나는비 욕심 텍스트 매칭과 bash는
내가 펄에서 유틸리티를 작성했습니다<mytag name="value" name="value"../>
와 같은 큰 XML 태그 내에 속성을 구문 분석 할 수있는 유틸리티를 가지고있다. 그것은 다음과 같이 기본이 아닌 욕심 텍스트 매칭을 사용
while(<XML>)
{
if (/name=\"(.+?)\"/)
{
print("Value is: $1\n");
}
내가 추출 할 이름/값 쌍의 이름을 알고, 그래서 유틸리티로 하드 코드.
이것은 꽤 잘 작동합니다 ... 어떻게하면 bash에서이 작업을 수행 할 수 있습니까? awk
을 사용해 보았지만 name="value with spaces in the middle"
과 같은 속성이있는 경우에는 작동하지 않습니다.
awk를 사용하면 추출하고자하는 이름/값 쌍의 색인을 알아야합니다. 예를 들어 awk { print $3 }
을 세 번째 집합으로 사용해야합니다. 값이 중간에 공백이 없더라도 제대로 작동하지만 실패하면 공백 문자까지만 실패합니다.
아무 것도 도움이 될 것입니다. 감사합니다.
XML 구문 분석기를 사용하여 XML을 구문 분석하는 것이 좋습니다. –
사실. 'xmlstarlet pyx'의 출력물을 파싱했다면 XML을 전통적인 텍스트 관리 도구로 쉽게 파싱 할 수 있도록 만들어진 라인 지향 형식으로 변환하기 때문에 올바르게 처리하는 것이 훨씬 쉽습니다. –