タグの末尾にフィールドを追加するためにsedスクリプトを使用しようとしています。 XMLファイルにタグがあるとしましょう。
<book name="Sed tutorial" price="250"/>
Book_Width="A"
これで、ラベルの最後にフィールドを追加して<book/>
ラベルを次のように作成したいと思います。
<book name="Sed tutorial" price="250" Book_Width="A"/>
私は前に試しましたsed
:
sed '/<book "[^>]*>/ a Book_Width="A"'
しかしそれは以下を提供します:
<book name="Sed tutorial" price="250"/>
Book_Width="A"
ベストアンサー1
sed
XMLを解析するには、次のXMLパーサーを使用しないでくださいxmlstarlet
。あなたの仕事については次のとおりです。
xmlstarlet ed -O --inplace --insert "/book" --type attr -n Book_Width -v A xml_file
その後、ファイルの内容は次のようになります。
<book name="Sed tutorial" price="250" Book_Width="A"/>
ed
XMLツリーを編集する編集モードを示します。-O
XMLタグを省略します。- 私たちは何かを挿入したいと思います
--insert
。 "/book"
挿入されたパスです。--type attr
:これは私たちが挿入したい属性です。-n
属性の名前です。- 値
-v
。