2
이 link을 기반으로 비슷한 문제를 해결하려고합니다.xmlstarlet 조건에 따른 값 선택
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo</groupId>
<artifactId>iwidget</artifactId>
<packaging>jar</packaging>
<version>0.9.1b</version>
<name>iwidget</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
나는 iwidget
로 동일한 groupId
artifactId
경우 추출 할. 내가 지금까지 시도 무엇
: 내가 놓친 게 무엇
xmlstarlet sel -N x=http://maven.apache.org/POM/4.0.0 -t -v "/x:project/x:groupId" < pom.xml
위가의 groupId = foo.bar
반환은, 그러나, 나는 그것이 artifactId
이 iwidget
$VAR='foo.bar'
xmlstarlet sel -N x=http://maven.apache.org/POM/4.0.0 -t -m "//x:project[artifactId="$VAR"]" -v "//x:project/groupId" < pom.xml
동일한 경우에만 반환하려면 ? 첫 번째 명령에
위의 pom은 제공되지 않습니다. 'iwidget'대신 쉘 변수 $ var를 사용할 수 있습니까? 그러나 변수가 없어도 작동하지 않습니다. – askb
포스트에서 XML을 업데이트하여 올바른 형식으로 만들었습니다. 그 정확한 * XML로 위의 명령을 시도해 볼 수 있습니까? 나는 그것을 여기에서 시험해 보았다. (xmlstarlet on docker 우분투 16.04). – har07
내가 찾고있는 것은 "iwidget"의 쉘 변수 ($ VAR)를 사용하고있다. 이 작업은 문자열을 직접 전달할 때 작동하며 $ VAR을 전달하면 아무 것도 반환하지 않습니다. – askb