У меня есть XML Plist , и мне нужен сценарий bash для редактирования целочисленного значения ключа в случае, если этот ключ существует, или для создания ключа и целочисленного значения, если его нет. Это машина Linux, поэтому команда Mac OS X 'defaults
недоступна.
То есть конечный Plist будет выглядеть так:
<dict>
…
<key>myKey</key>
<integer>54</integer>
…
</dict>
независимо от того, существовал ли ключ myKey
в исходном Plist или нет, и где целое значение 54
предоставляется переменной.
В Mac OS X я бы сделал это так:
defaults write ./myPlist myKey -int $(echo $myKey_value)
но, как я уже сказал, в Linux нет команды defaults
. Я пробовал с sed
, но, видимо, он может соответствовать только одной строке. Может быть, awk
или perl
подойдут, но я почти ничего не знаю.