scm:git:ssh://를 사용하지 않고 개발자 연결을 사용하지 않고 pom.xml에서 git@... 문자열을 얻는 방법은 무엇입니까?

scm:git:ssh://를 사용하지 않고 개발자 연결을 사용하지 않고 pom.xml에서 git@... 문자열을 얻는 방법은 무엇입니까?

pom.xml이 있습니다.

<scm>
<developerConnection>scm:git:ssh://[email protected]:anton_patsev/maven-release-example3.git</developerConnection>
<tag>HEAD</tag>
</scm>

문자열을 얻는 방법[이메일 보호됨]: pom.xml의 anton_patsev/maven-release-example3.git?

감사해요!

답변1

string=$(cat pom.xml | grep developerConnection | sed -e s/\<developerConnection\>scm:git:ssh://g)
echo string
echo $string
developerConnection=$(echo ${string//[[:blank:]]/} | cut -c 3- | sed s/developerConnection//g |  head -c-4)
echo developerConnection
developerConnection=$(echo $developerConnection| sed 's/gitlab.tools.russianpost.ru\//gitlab.tools.russianpost.ru:/g')
echo developerConnection

답변2

정규 표현식은아니요xml/html 데이터를 구문 분석하는 데 사용됩니다. 마크업 데이터에는 레이블이나 콘텐츠 텍스트를 한 줄에 유지해야 하는 "의무"가 없습니다. 또는 다음
과 같은 적절한 xml/html 파서를 사용하십시오 .xmllintxmlstarlet

$ xmllint --xpath 'scm/developerConnection/text()' pom.xml
scm:git:ssh://[email protected]:anton_patsev/maven-release-example3.git

관련 정보