如何在bash中从XML中提取修订号? 古罗马的 http://svn.exoplatform.org/projects/jcr-benchmark/trunk 70141 https://anonsvn.jboss.org/repos/exo-jcr/core/trunk 4679 https://anonsvn.jboss.org/repos/exo-jcr/dev-resources/tags/1.2.0 75 https://anonsvn.jboss.org/repos/exo-jcr/docs-style/tags/1 2031 https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk 4687 https://anonsvn.jboss.org/repos/exo-jcr/junit.framework/tags/1.2.1-GA 1961 https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk 4673 https://************.org/repos/******/parent/tags/9 4503 https://************.org/repos/******/parent/tags/9 4675 https://anonsvn.jboss.org/repos/exo-jcr/docs-style/tags/1 2031 https://anonsvn.jboss.org/repos/exo-jcr/dev-resources/tags/1.2.0 75 https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk 4687 https://anonsvn.jboss.org/repos/exo-jcr/ws/trunk 4675 https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk 4673 https://anonsvn.jboss.org/repos/exo-jcr/junit.framework/tags/1.2.1-GA 1961 https://anonsvn.jboss.org/repos/exo-jcr/core/trunk 4679 https://anonsvn.jboss.org/repos/exo-jcr/parent/tags/9 4503 http://svn.exoplatform.org/projects/jcr-benchmark/trunk 70141 竖起大拇指 Chuck Norris可以生成在启动之前完成的线程。 日本报道 测试结果/ index.html 真的 htmlpublisher-wrapper.html 38 成功 286787 UTF-8 假的 /home/roman/.hudson/jobs/Express Testing JCR Trunk/workspace 1.417
我需要得到修订(4687)从如何在bash中从XML中提取修订号? 古罗马的 http://svn.exoplatform.org/projects/jcr-benchmark/trunk 70141 https://anonsvn.jboss.org/repos/exo-jcr/core/trunk 4679 https://anonsvn.jboss.org/repos/exo-jcr/dev-resources/tags/1.2.0 75 https://anonsvn.jboss.org/repos/exo-jcr/docs-style/tags/1 2031 https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk 4687 https://anonsvn.jboss.org/repos/exo-jcr/junit.framework/tags/1.2.1-GA 1961 https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk 4673 https://************.org/repos/******/parent/tags/9 4503 https://************.org/repos/******/parent/tags/9 4675 https://anonsvn.jboss.org/repos/exo-jcr/docs-style/tags/1 2031 https://anonsvn.jboss.org/repos/exo-jcr/dev-resources/tags/1.2.0 75 https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk 4687 https://anonsvn.jboss.org/repos/exo-jcr/ws/trunk 4675 https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk 4673 https://anonsvn.jboss.org/repos/exo-jcr/junit.framework/tags/1.2.1-GA 1961 https://anonsvn.jboss.org/repos/exo-jcr/core/trunk 4679 https://anonsvn.jboss.org/repos/exo-jcr/parent/tags/9 4503 http://svn.exoplatform.org/projects/jcr-benchmark/trunk 70141 竖起大拇指 Chuck Norris可以生成在启动之前完成的线程。 日本报道 测试结果/ index.html 真的 htmlpublisher-wrapper.html 38 成功 286787 UTF-8 假的 /home/roman/.hudson/jobs/Express Testing JCR Trunk/workspace 1.417,xml,parsing,bash,sh,Xml,Parsing,Bash,Sh,我需要得到修订(4687)从 https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk 4687 如果url从未更改,并且总是在更改后出现,则可以使用以下选项: <?xml version='1.0' encoding='UTF-8'?> <build> <actions> <hudson.model.CauseAction> <causes> <hudson.model.C
https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk
4687
如果url从未更改,并且总是在更改后出现,则可以使用以下选项:
<?xml version='1.0' encoding='UTF-8'?>
<build>
<actions>
<hudson.model.CauseAction>
<causes>
<hudson.model.Cause_-UserCause>
<authenticationName>roman</authenticationName>
</hudson.model.Cause_-UserCause>
</causes>
</hudson.model.CauseAction>
<hudson.scm.SubversionTagAction>
<build class="build" reference="../../.."/>
<tags class="hudson.util.CopyOnWriteMap$Tree">
<no-comparator/>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>http://svn.exoplatform.org/projects/jcr-benchmark/trunk</url>
<revision>70141</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/core/trunk</url>
<revision>4679</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/dev-resources/tags/1.2.0</url>
<revision>75</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/docs-style/tags/1</url>
<revision>2031</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk</url>
<revision>4687</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/junit.framework/tags/1.2.1-GA</url>
<revision>1961</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk</url>
<revision>4673</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://*****.*****.org/repos/****/parent/tags/9</url>
<revision>4503</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://*****.*****.org/repos/****/parent/tags/9</url>
<revision>4675</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
</tags>
</hudson.scm.SubversionTagAction>
<hudson.scm.SVNRevisionState>
<revisions>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/docs-style/tags/1</string>
<long>2031</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/dev-resources/tags/1.2.0</string>
<long>75</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk</string>
<long>4687</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/ws/trunk</string>
<long>4675</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk</string>
<long>4673</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/junit.framework/tags/1.2.1-GA</string>
<long>1961</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/core/trunk</string>
<long>4679</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/parent/tags/9</string>
<long>4503</long>
</entry>
<entry>
<string>http://svn.exoplatform.org/projects/jcr-benchmark/trunk</string>
<long>70141</long>
</entry>
</revisions>
</hudson.scm.SVNRevisionState>
<hudson.plugins.chucknorris.RoundhouseAction>
<mStyle>THUMB_UP</mStyle>
<mFact>Chuck Norris can spawn threads that complete before they are started.</mFact>
</hudson.plugins.chucknorris.RoundhouseAction>
<htmlpublisher.HtmlPublisherTarget_-HTMLBuildAction>
<actualHtmlPublisherTarget>
<reportName>Japex Reports</reportName>
<reportDir>TestingResults/</reportDir>
<reportFiles>index.html</reportFiles>
<keepAll>true</keepAll>
<wrapperName>htmlpublisher-wrapper.html</wrapperName>
</actualHtmlPublisherTarget>
<outer-class reference="../actualHtmlPublisherTarget"/>
<build class="build" reference="../../.."/>
<outer-class defined-in="htmlpublisher.HtmlPublisherTarget$HTMLBuildAction" reference="../actualHtmlPublisherTarget"/>
</htmlpublisher.HtmlPublisherTarget_-HTMLBuildAction>
</actions>
<number>38</number>
<result>SUCCESS</result>
<duration>286787</duration>
<charset>UTF-8</charset>
<keepLog>false</keepLog>
<builtOn></builtOn>
<workspace>/home/roman/.hudson/jobs/Express-Testing-JCR-Trunk/workspace</workspace>
<hudsonVersion>1.417</hudsonVersion>
<scm class="hudson.scm.SubversionChangeLogParser"/>
<culprits/>
</build>
$grep-A 1'https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk'test.xhtml|
尾-1|
sed-e的//[^0-9]//g'
如果url从未更改,并且总是在更改后出现,则可以使用以下选项:
<?xml version='1.0' encoding='UTF-8'?>
<build>
<actions>
<hudson.model.CauseAction>
<causes>
<hudson.model.Cause_-UserCause>
<authenticationName>roman</authenticationName>
</hudson.model.Cause_-UserCause>
</causes>
</hudson.model.CauseAction>
<hudson.scm.SubversionTagAction>
<build class="build" reference="../../.."/>
<tags class="hudson.util.CopyOnWriteMap$Tree">
<no-comparator/>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>http://svn.exoplatform.org/projects/jcr-benchmark/trunk</url>
<revision>70141</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/core/trunk</url>
<revision>4679</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/dev-resources/tags/1.2.0</url>
<revision>75</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/docs-style/tags/1</url>
<revision>2031</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk</url>
<revision>4687</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/junit.framework/tags/1.2.1-GA</url>
<revision>1961</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk</url>
<revision>4673</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://*****.*****.org/repos/****/parent/tags/9</url>
<revision>4503</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
<entry>
<hudson.scm.SubversionSCM_-SvnInfo>
<url>https://*****.*****.org/repos/****/parent/tags/9</url>
<revision>4675</revision>
</hudson.scm.SubversionSCM_-SvnInfo>
<list/>
</entry>
</tags>
</hudson.scm.SubversionTagAction>
<hudson.scm.SVNRevisionState>
<revisions>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/docs-style/tags/1</string>
<long>2031</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/dev-resources/tags/1.2.0</string>
<long>75</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk</string>
<long>4687</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/ws/trunk</string>
<long>4675</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk</string>
<long>4673</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/junit.framework/tags/1.2.1-GA</string>
<long>1961</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/core/trunk</string>
<long>4679</long>
</entry>
<entry>
<string>https://anonsvn.jboss.org/repos/exo-jcr/parent/tags/9</string>
<long>4503</long>
</entry>
<entry>
<string>http://svn.exoplatform.org/projects/jcr-benchmark/trunk</string>
<long>70141</long>
</entry>
</revisions>
</hudson.scm.SVNRevisionState>
<hudson.plugins.chucknorris.RoundhouseAction>
<mStyle>THUMB_UP</mStyle>
<mFact>Chuck Norris can spawn threads that complete before they are started.</mFact>
</hudson.plugins.chucknorris.RoundhouseAction>
<htmlpublisher.HtmlPublisherTarget_-HTMLBuildAction>
<actualHtmlPublisherTarget>
<reportName>Japex Reports</reportName>
<reportDir>TestingResults/</reportDir>
<reportFiles>index.html</reportFiles>
<keepAll>true</keepAll>
<wrapperName>htmlpublisher-wrapper.html</wrapperName>
</actualHtmlPublisherTarget>
<outer-class reference="../actualHtmlPublisherTarget"/>
<build class="build" reference="../../.."/>
<outer-class defined-in="htmlpublisher.HtmlPublisherTarget$HTMLBuildAction" reference="../actualHtmlPublisherTarget"/>
</htmlpublisher.HtmlPublisherTarget_-HTMLBuildAction>
</actions>
<number>38</number>
<result>SUCCESS</result>
<duration>286787</duration>
<charset>UTF-8</charset>
<keepLog>false</keepLog>
<builtOn></builtOn>
<workspace>/home/roman/.hudson/jobs/Express-Testing-JCR-Trunk/workspace</workspace>
<hudsonVersion>1.417</hudsonVersion>
<scm class="hudson.scm.SubversionChangeLogParser"/>
<culprits/>
</build>
$grep-A 1'https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk'test.xhtml|
尾-1|
sed-e的//[^0-9]//g'
或实用程序可以帮助您:
$ grep -A 1 '<url>https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk' test.xhtml |
tail -1 |
sed -e 's/[^0-9]//g'
或:
处理XML内容时始终使用XML解析器。如果您不这样做,您可能会遇到奇怪的问题,正如这一经典答案所示:或实用程序可以帮助您:
$ grep -A 1 '<url>https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk' test.xhtml |
tail -1 |
sed -e 's/[^0-9]//g'
或:
处理XML内容时始终使用XML解析器。如果您不这样做,您可能会遇到奇怪的问题,正如这一经典答案所示: