タグを更新する必要があります<\abc> 他のファイルの変数を使用します。出力は、abcタグ内のコンマ区切りのすべての値を含むxmlファイルでなければなりません。

タグを更新する必要があります<\abc> 他のファイルの変数を使用します。出力は、abcタグ内のコンマ区切りのすべての値を含むxmlファイルでなければなりません。

file1.xmlタグ名を含むxmlファイルを更新するのに役立ちます<abc> <\abc>

固定長の数字がありますfile2.txt(1行に1つの数字)。

1234
5678
1435

newfile.xmlとして出力する必要があります。

<abc>1234,5678,1435<\abc>

どんなawkオプションがありますかsed

ありがとう

ベストアンサー1

この質問は、異なるツールを使用して2つの部分で構成されています。

  1. file2.txtカンマで行を連結する

    paste -s -d',' file2.txt
    1234,5678,1435
    
  2. XMLファイルに値を挿入します(空のファイルを効果的に更新します)。これを行うには、非XMLをXMLに変更する必要があります。

    cat file1.xml
    <abc> </abc>
    
    xmlstarlet edit --update '//abc' --value 'test' file1.xml
    <?xml version="1.0"?>
    <abc>test</abc>
    

    出力が期待したものと同じであることを確認したら、を使用できxmlstarletますedit --inplace

これらを総合すると、

data=$(paste -s -d',' file2.txt)
xmlstarlet edit --inplace --update '//abc' --value "$data" file1.xml

cat file1.xml
<?xml version="1.0"?>
<abc>1234,5678,1435</abc>

おすすめ記事