Разбор значений macOS plist
У меня есть файлы plist, расположенные в /private/var/db/dslocal/nodes/default/users. Я могу читать значения в plist с помощью plutil.
plutil -p /private/var/db/dslocal/nodes/default/users/swastibhushandeb.plist
Выдержка из выходных данных:
{
"hint" => [
0 => "abcxyz"
]
"home" => [
0 => "/Users/swastibhushandeb"
"name" => [
0 => "swastibhushandeb"
1 => "swasti.bhushan@xyz.com"
]
"passwd" => [
0 => "********"
]
"picture" => [
0 => "/Library/User Pictures/Animals/Parrot.tif"
]
"realname" => [
0 => "Swasti Bhushan Deb"
]
"record_daemon_version" => [
0 => "48400XX"
]
"uid" => [
0 => "501"
}
Что было бы лучшим способом выбрать конкретные значения (такие как "имя", "настоящее имя" и т. Д.) Из списка, используя bash.
1 ответ
Решение
Вы можете использовать либо defaults
команда (обратите внимание, что ".plist" опущен в имени файла):
defaults read /private/var/db/dslocal/nodes/default/users/swastibhushandeb name
Или же PlistBuddy
:
/usr/libexec/PlistBuddy -c "print name" /private/var/db/dslocal/nodes/default/users/swastibhushandeb.plist
Но так как это на самом деле пользовательская запись, которую вы пытаетесь прочитать, я бы рекомендовал использовать dscl
вместо:
dscl /Search -read /Users/swastibhushandeb name
Естественно, все они используют разные форматы вывода...