構成ファイルの1行からデータベース名を選択してください。

構成ファイルの1行からデータベース名を選択してください。

このjdbcファイル行があります

<url>jdbc:oracle:thin:@192.168.1.70:1521:MYDBORA</url>

その部分をキャプチャするには、一種のユーティリティを使用する必要がありますMYDBORAが、必ずしも同じ名前ではありません。1521:間の部分が必要です</url>

  • 頑張りました
    grep 1521 config_file.xml | sed 's/.*://' |grep -o -P '.0,6</url'
    
    私は対価で何も得られませんでした*私も次のことを試しました。
    grep 1521 config_file.xml | cut -d ':' -f 6
    
    わかりました。
    MYDBORA<url>
    

私はデータベースの名前だけが欲しい。常に5文字ではなく、間の1521:すべてです。<url>

ファイル抽出:

<?xml version="1.0" encoding="UTF-8"?>
<jdbc-data-source xmlns="xmlns.oracle.com/weblogic/jdbc-data-source">
  <name>assetmanagement-xa-ds</name>
  <jdbc-driver-params>
    <url>jdbc:oracle:thin:@192.168.1.70:1521:DB_NAME</url>
    <driver-name>oracle.jdbc.xa.client.OracleXADataSource</driver-name>
    <properties> 
...

ベストアンサー1

これはJDBCであり、XMLファイルを扱っているため、これを使用して、xmlstarletスペースやその他の無関係な形式に関係なく、必要な要素を確実に選択できます。

次の例を使用してください。JDBCドキュメント、選ぶ<connection-url/>のはとても簡単です

xmlstarlet sel -t -v '//connection-url' -n config_file.xml
jdbc:oracle:thin:@%hostname%:%port%:%database sid%

<url/>あなたの場合は、それに応じて交換する代わりに使用する必要があります<connection-url/>。その後、最後のコロン(別々のフィールド)を選択できます。

xmlstarlet sel -t -v '//url' -n config_file.xml | awk -F: '{print $NF}'
MYDBORA

おすすめ記事