我有一个自定义xml,我试图在Bash中用唯一的UUID替换多个出现的字符串(例如“ uuidVariable”)。
tuple
我能够生成一个UUID并将其存储:
<dict>
<key>Apple</key>
<true/>
<key>uuid</key>
<string>uuidVariable</string>
</dict>
<dict>
<key>Banana</key>
<false/>
<key>uuid</key>
<string>uuidVariable</string>
</dict>
但是如何遍历myfile.xml并用新的UUID替换每个字符串呢?
我知道如何计算出现的字符串,但是我认为这不会进一步帮助我
UUID=$(cat /proc/sys/kernel/random/uuid)
编辑: 我也知道如何替换2个字符串。但这不能解决每个唯一的问题。
countUUID=$(sed 's/uuidVariable/uuidVariable\n/g' myfile.xml | grep -c "uuidVariable")
答案 0 :(得分:2)
我想你可以做这样的事情。
awk 'BEGIN { p="/proc/sys/kernel/random/uuid" }
/uuidVariable/ { getline uuid < p; close(p)
sub("uuidVariable", uuid) } 1' file.xml >newfile.xml
答案 1 :(得分:0)