У меня возникли проблемы с информацией о направлении из плютиля. Я хочу проверить, содержит ли .plist ключ CFBundleShortVersionString. Я не думаю, что у plutil есть возможность проверить, существует ли ключ, поэтому я думал, что буду просто plutil -show file.plist >file.txt
, но это просто не работает. :/Поэтому я попытался направить файл plist из stdout в файл с параметром дампа plutil -dump file.plist >file.txt
без везения. :/Я также попытался направлять stdout в stderr и stderr и stdout в файл. Ничего не получилось. Кто-нибудь знает как это сделать?Получение информации от plutil
ответ
Если вам необходимо проверить вашу .plist существования ключа CFBundleShortVersionString
, то лучше использовать PlistBuddy
так:
/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" 1.plist || echo "CFBundleShortVersionString doesn't exist"
$ plutil -show StorePurchasesInfo.plist 2>&1 | grep cbk
возвращает все строки в PLIST с текстом «СВК» в них. По какой-то причине plutil
отправляет свой вывод на stderr. Вышеупомянутый перенаправляет stderr на stdout, поэтому он может быть успешно передан на grep
(или перенаправлен в файл или что угодно).
Для рода ответ на ваш вопрос, вы можете создать небольшой Баш скрипт, содержащий:
#!/bin/bash
cp $1 /tmp/$$.tmp
plutil -convert xml1 /tmp/$$.tmp
cat /tmp/$$.tmp
rm /tmp/$$.tmp
Если вы звоните сценарий Баш pldump сделать его исполняемым с chmod +x pldump
. Поместите его где-то на своем пути и использовать его так:
tlh-m0290:Preferences paul.downs$ ./pldump com.example.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>station.data.downloaded</key>
<true/>
</dict>
</plist>
Я не вижу никакого другого способа сделать plutil вывод на стандартный вывод.
Я думаю, что трюк '2> & 1' в моем ответе выше сделает вывод' plutil' в 'stdout'? –
plutil -extract CFBundleShortVersionString xml1 -o - App-Info.plist
команда выводит содержимое CFBundleShortVersionString
собственности
Oneliner, который не зависит от дополнительной утилиты для установки:
plutil -extract CFBundleShortVersionString xml1 -o - ./Info.plist | sed -n "s/.*<string>\(.*\)<\/string>.*/\1/p"
- 1. получение информации от адресата
- 2. Получение информации от API
- 3. Получение информации от UITextField
- 4. Получение информации от ID
- 5. Получение информации от MySQL
- 6. Получение информации от loc
- 7. данных труб в plutil
- 8. Получение информации от унаследованных объектов
- 9. Получение дополнительной информации от Rprof()
- 10. получение информации от вектора времени
- 11. Python - получение информации от узлов
- 12. Получение информации от объекта NSData
- 13. Получение информации от контролируемого процесса
- 14. Получение информации от объекта Рафаэля
- 15. получение информации от разных JComponents
- 16. Получение информации от магнитных датчиков
- 17. plutil: command не найден
- 18. NSTask plutil unrecognized option
- 19. Сжимающие пластины - NSPropertyListSerialization vs plutil?
- 20. Получение информации о получателе от обратной линии
- 21. Получение информации от пользователя в AlertDialog
- 22. Получение информации от MCP23017 с Python
- 23. Akka - Получение информации от прекращенного актера
- 24. Получение информации от контроллера View до AppDelegate
- 25. Использование Hashtable, Arraylist. Получение информации от них
- 26. openID получение информации, отличной от электронной почты
- 27. Получение информации от ObjCPropertyRefExpr в Clang AST
- 28. Получение информации от исключения без sys.exc_info
- 29. Получение информации от Facebook График API
- 30. Получение информации EPG от DVB-T
plutil не имеет -show флага. – Diziet
Я предполагаю, что это должна быть другая версия, она также имеет флаг -show в вопросе OP. –