我有一个定制的xml文件,我想在Bash中用唯一的UUID替换多次出现的字符串(例如“uuidVariable”)。
<dict>
<key>Apple</key>
<true/>
<key>uuid</key>
<string>uuidVariable</string>
</dict>
<dict>
<key>Banana</key>
<false/>
<key>uuid</key>
<string>uuidVariable</string>
</dict>
我能够生成 UUID 并储存它:
UUID=$(cat /proc/sys/kernel/random/uuid)
但是如何循环遍历myfile.xml并用新的UUID替换每个字符串呢?
我知道如何计算出现的字符串,但我认为这对我没有更多帮助。
countUUID=$(sed 's/uuidVariable/uuidVariable\n/g' myfile.xml | grep -c "uuidVariable")
编辑: 我知道如何替换两个字符串,但这并不能解决每个字符串都是唯一的问题。
sed -i s/uuidVariable/UUID/g myfile.xml