ファイル内の部分文字列名に基づいて、唯一の文字列名を検索します。
使用したコマンド:
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
xml要素のdocBase属性に関心があるようです。具体的には、値の文字列に部分文字列として「current」が含まれているもの。
grep -i current test.xml | grep -o " docBase=\"[^\"]*" | rev | cut -d'/' -f1 | rev
しかし、これはやや大雑把な解決策です。正確さを保証するために、複数の仮定を行う必要があります。
grepなどの使用は理想的ではないため、xml入力を解析するためのコマンドラインツールであるxmllintを確認することをお勧めします。XPathを使用すると、コマンドは次のようになります。
xmllint --xpath "//Context[contains(translate(@docBase,'CENRTU', 'cenrtu'), 'current')]/@docBase" test.xml | rev | cut -d'/' -f1 | cut -c2- | rev
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加