요소 이름 속성을 찾고 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>