.xml
次の内容を含むファイルがあります。
<controller-host></controller-host>
<controller-port></controller-port>
<tier-name></tier-name>
<node-name></node-name>
私はこの出力が欲しい
<controller-host>AppDynamicsHost</controller-host>
<controller-port>80</controller-port>
<tier-name>**the host name**</tier-name>
<node-name>tomcat server</node-name>
使用しようとしましたが、sed
動作しません。
ベストアンサー1
そのファイルは有効なxmlではありません。開くと閉じるルートタグを追加する必要があります。このように:
<xml>
<controller-host></controller-host>
<controller-port></controller-port>
<tier-name></tier-name>
<node-name></node-name>
</xml>
この入力を使用すると、xmlパーサーを使用してxmlstartlet
コンテンツを編集できます。
xmlstarlet ed -O -u //controller-host -v "AppDynamicsHost" \
-u //controller-port -v "80" \
-u //tier-name -v "the hostname" \
-u //node-name -v "tomcat server" file
ed
編集モードを開始xmlstartlet
-O
<?xml version="1.0"?>
宣言を省略-u
与えられたxpathを更新します。-v
与えられた値を設定
その後、出力は次のようになります。
<xml>
<controller-host>AppDynamicsHost</controller-host>
<controller-port>80</controller-port>
<tier-name>the hostname</tier-name>
<node-name>tomcat server</node-name>
</xml>
ファイルをその場で直接編集するには、このフラグを使用できます-L
。