根据文件中的子字符串名称找到唯一的字符串名称。
使用的命令:
cat test.xml | grep -i current | awk -F / '{print $NF}' | tr -d
有效方法:
文件内容:
<Context path="/SomeApi" reloadable="false" docBase="http://some-domain/CURRENT/SomeApi-CURRENT.war"
输出(所需的输出):
SomeApi-CURRENT.war
什么不起作用:
文件内容:
<Context path="/SomeApi" reloadable="false" docBase="http://some-domain/CURRENT/SomeApi-CURRENT.war" workDir="/U01/someApi/work
输出:
work className=URLStandardContext unpackWAR=true>
需要输出SomeApi-CURRENT.war
答案 0 :(得分:2)
似乎您对xml元素的docBase属性感兴趣。特别是那些值字符串包含“当前”作为子字符串的对象。
grep -i current test.xml | grep -o " docBase=\"[^\"]*" | rev | cut -d'/' -f1 | rev
但这是一个粗略的解决方案。为了保证正确性,必须做出多个假设。
由于使用grep等并不理想,因此您可能需要检查xmllint,它是用于解析xml输入的命令行工具。使用XPath时,命令可能看起来像这样:
xmllint --xpath "//Context[contains(translate(@docBase,'CENRTU', 'cenrtu'), 'current')]/@docBase" test.xml | rev | cut -d'/' -f1 | cut -c2- | rev