Разбор значений 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

Естественно, все они используют разные форматы вывода...

Другие вопросы по тегам