bash/sed를 사용하여 XML 속성 값을 추출하는 방법

bash/sed를 사용하여 XML 속성 값을 추출하는 방법

요소 이름 속성을 찾고 sed 결과를 이름 변수에 저장하기 위해 다음 grep 명령을 sed에 연결했습니다.

 name=$(grep -E "<element.*name=.*/>" "$F" | sed -e "s/.*<element.*name=\(.*\)\/>.*?/\1/")

샘플 데이터 -

<element name="Barium"/>

원하는 출력 -

Barium

실제 출력 -

<element name="Barium"/>

초과분을 제거하기 위해 sed 명령을 얻는 방법에 대해 약간 혼란 스럽습니다.

(xmllint를 사용하면 이 작업이 쉬워지지만 이를 위해 사용할 수는 없습니다.)

답변1

이를 위해서는 sed가 필요하지 않습니다.

grep -Po '(?<=<element name=")[^"]+' <file>

또는

grep -Po '<element name="\K[^"]+' <file>

관련 정보