Awk
我需要用另一個文件中的變數更新標籤 <abc><abc> 。輸出應該是一個 xml 文件,所有這些值用逗號分隔在 abc 標記中
我需要幫助更新一個
file1.xml
帶有標籤名稱的 xml 文件<abc> <\abc>
。具有固定長度的
file2.txt
數字(每行 1 個數字):1234 5678 1435
我需要輸出到 newfile.xml:
<abc>1234,5678,1435<\abc>
任何
awk
,sed
請選擇?謝謝
這個問題有兩個部分,它們使用不同的工具
file2.txt
用逗號連接行paste -s -d',' file2.txt 1234,5678,1435
- 在 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>