Кудрет нары полезные свойства


Кудрет нары или Момордика | VMersine.com

Это растение с красивыми ярко-оранжевыми плодами известно во многих странах Юго-Восточной Азии, поэтому и названий у неё множество: индийский гранат, бальзамическая груша, бешеный огурец, кудрет нары (что в переводе означает «горькая тыква»), огурец-крокодил.

Относится оно к семейству Тыквенные и представляет собой однолетнюю лиану. Самое известное и распространённое название этой лианы —  Момордика. Происходит оно от латинского слова  momordicus, что означает «Кусачий». Дело в том, что до тех пор, как растение начинает плодоносить, его стебель и листья могут жалить точь-в-точь, как крапива.

Как выглядит момордика?

Незрелые плоды момордики — зелёного цвета. Созревая, они всё больше желтеют и, в конце концов, становятся ярко-оранжевыми. Выглядят созревшие плоды довольно экзотически. Они отдалённо похожи на огурец или продолговатую дыню и покрыты своеобразными «бородавками». Когда плод полностью созревает, он лопается, распадаясь на три части и демонстрируя своё содержимое – ярко-красные наросты, внутри которых скрыты семена.

Какой вкус у момордики?

Те самые «бородавки» придают мякоти момордики горький вкус. А вот ярко-красные созревшие наросты, наоборот, добавляют сладости. Вкус момордики для многих людей приближен к спелой тыкве, однако есть такие, кто чувствует в этом вкусе «нотки» огурца и даже горошка.

Полезные свойства чернослива, Полезные свойства чернослива для мужчин

Полезные свойства чернослива и противопоказания

Полезные свойства чернослива и противопоказания

Полезные свойства Чернослив сушат по специальной технологии сушки. Предпочтение отдается венгерским и итальянским сортам. Благодаря правильной технике приема удается сохранить все полезные свойства, которым обладает свежайший слив.Готовые сухофрукты очень полезны, ведь они богаты минеральными элементами, витаминами, кислотами.

Ценность и пользу обрезки для организма трудно переоценить. Этот продукт содержит сахар, органические кислоты, клетчатку, минералы (натрий, кальций, калий, фосфор, железо). Чернослив очень полезен и эффективен при лечении ранних стадий сердечно-сосудистых заболеваний. В его компетенции - нормализовать давление, улучшить работу желудочно-кишечного тракта, улучшить обмен веществ.

  • Информация по этой теме здесь

Изучая полезные свойства и противопоказания чернослива, диетологи причислили его к незаменимым продуктам в рационе.Чернослив не только облегчает обмен веществ, но и очищает организм от вредных веществ, токсинов, нитратов, которые попадают в нас через другие продукты.

Поскольку в черносливе присутствует высокое содержание железа, он незаменим в питании людей, страдающих анемией и авитаминозом. Благодаря насыщенности пищевых волокон черносливом оказывает лечебный эффект при заболеваниях желудочно-кишечного тракта.

Просто зная, сколько калорий в черносливе - много съесть не получится, ведь на 100 грамм сухофруктов приходится 231 ккал.Употребляя 5-6 в день фруктов - вы полностью обеспечиваете себя всеми необходимыми элементами, которых в нем содержится

Вы можете оставить отзыв или откликнуться со своего сайта. .

Как делается бетон (новое исследование) - Цементный бетон

Как производится бетон: - Бетон представляет собой жидкую смесь цемента, воды, песка и гравия . Бетон можно заливать в формы или формы, и он затвердеет, чтобы создать необходимые компоненты бетонной конструкции. Вам интересно узнать о микроструктуре бетона? Вот Новое исследование по микроструктуре бетона.

Химическая реакция и гидратация

схватывание и твердение бетона вызвано химической реакцией между портландцементом и водой, это можно продемонстрировать, добавив небольшое количество цемента в воду, содержащую индикатор, быстрое развитие синего цвета отражает выделение гидроксила. Ионы из растворяющегося цемента химическая реакция между цементом и водой называется гидратацией.

Связанные: - Высокопрочные свойства бетона, прочность, добавки и состав смеси

Рис.1. Состав бетона

Растворение цемента увеличивает уровни кальция и кремния в растворе, когда концентрация растворенных веществ достигает критических уровней, в результате реакции осаждения образуются новые твердые продукты. Это эскиз зерен цемента, взвешенных в воде.

Твердые продукты Hydration образуют покрытия вокруг частиц цемента и постепенно заполняют пространство между ними, когда покрытия впервые начинают схватываться, происходит устойчивое увеличение прочности по мере того, как покрытия срастаются вместе, величина прочности, достигаемая за счет смесь цемента и воды зависит от того, насколько эффективно заполнено пространство между зернами.

Бетон затвердеет в течение нескольких часов, , но гидратация продолжается в течение недель, даже лет после укладки. Вот изображение частиц цемента до воздействия воды. Сухой цемент представляет собой мелкодисперсный порошок, и частицы не прикрепляются друг к другу после того, как цемент смешан с водой и оставлен стоять.

Сейчас картина совсем другая, частицы сгруппированы вместе и прикреплены твердым материалом, обеспечивающим структурную целостность.Ученые из Национального института стандартов и технологий научились моделировать гидратацию цемента на компьютере с помощью компьютерного моделирования.

Гидратация ускоряется за несколько минут, а не дней до гидратации. Моделирование частиц цемента размещаются на дисплее компьютера, компьютер определяет области частиц, которые могут растворяться в воде.

Кусочки растворенного цемента случайным образом диффундируют в воде и реагируют с образованием твердых фаз.Согласно определенным правилам после завершения цикла , растворения, диффузии и осаждения , компьютер переходит к другому циклу, поскольку этот процесс повторяется снова и снова.


Микроструктура бетона

Микроструктура развивает мосты между частицами, которые обеспечивают прочность материала. Компьютерное моделирование оказалось ценным, поскольку позволяет исследователям тестировать условия и проводить измерения, которые трудно достичь в реальной жизни.В конце моделирования гидратации структура затвердевшего цементного теста очень похожа на ту, что наблюдается под микроскопом.

Гидратация - это экзотермический процесс, при котором в результате химических реакций выделяется тепло, за процессом гидратации можно легко следить, отслеживая выделение тепла, которое сопровождает реакции,

это делается путем отхаркивания раствора из партии бетона и его взвешивания в бутылку, которая помещается в изотермический контейнер, термистор встраивается в свежий раствор , выходной сигнал термистора можно регистрировать с помощью На компьютере результаты этого эксперимента могут быть представлены в виде кривой зависимости температуры от времени .

Подробнее : Производство портландцемента - процесс и материалы

Площадь под основным пиком может быть связана с ранним развитием прочности, начальное растворение цемента Purdue - это кратковременное выделение тепла, показанное первым пиком на калориметрической кривой.

После того, как продукты гидратации начального растворения быстро осаждаются на поверхности каждой частицы цемента, слой действует как защитный барьер и временно задерживает дальнейшее растворение частицы, что замедляет реакцию на несколько часов и называется период покоя.

Существование периода покоя позволяет транспортировать бетон на строительную площадку, укладывать и обрабатывать формы, конец периода покоя представляет собой начало схватывания, после чего цемент снова начинает реагировать. быстро с водой, поскольку образуются новые продукты гидратации.

Ученые используют измерения других свойств для контроля схватывания и твердения бетона, исследователям часто необходимо знать, какая часть цемента гидратирована.


Степень гидратации

Степень гидратации можно оценить путем нагревания образца цементного теста и измерения потери веса в зависимости от температуры с помощью оборудования для термогравиметрического анализа . , свободная вода в образце удаляется путем нагревания до 105 градусов Цельсия при 105 градусах. . Образец сухой, но сохраняет свою прочность.

Вода, участвующая в реакциях гидратации, химически соединяется с цементом. Ее можно удалить из образца путем нагревания до 1000 градусов при 1000 градусов всей исходной смеси.вода была удалена из образца. Степень гидратации рассчитывается по массе химически объединенной воды, типичное цементное тесто, отвержденное во влажных условиях, достигает степени гидратации около 80% за 28 дней с,

Электрические свойства образцов цемента или раствора можно отслеживать с течением времени, что приводит к профилям изменений электрического сопротивления. Электрические свойства этого образца цемента измеряются с помощью двух металлических дорог и оборудования, которое измеряет сопротивление и импеданс.

На этой диаграмме показано, как сопротивление электричества через цемент увеличивается по мере того, как цемент гидратируется в раннем возрасте, вода легко проводит ток через образец, но когда продукты гидратации заполняют открытые пространства внутри образца, электрический ток не может проходить так же легко, в этом случае Таким образом, электрические свойства могут быть связаны со степенью гидратации.

Сопротивление и импеданс цемента - это тема исследований, которые когда-нибудь могут изменить методы испытаний свежего бетона в полевых условиях.Текучие свойства бетона очень важны в этой области, потому что качественное строительство требует соответствующего уплотнения.

Стандартное испытание на осадку обеспечивает грубую оценку удобоукладываемости бетона, это испытание широко используется, потому что его легко проводить в полевых условиях, свойства жидкости также являются предметом исследования в лаборатории из-за потока изменений цемента по мере гидратации. Такие свойства, как вязкость и начальное сопротивление потоку, используются для характеристики жидких материалов.

Вода - это жидкость с низкой вязкостью и низким начальным сопротивлением текучести, но бетонный раствор и свежий цементный клей имеют гораздо более высокую вязкость, чем вода.

Вибрация часто используется для преодоления этого сопротивления в бетоне в лаборатории, жидкие свойства цементного теста можно измерить с помощью этого реометра Brookfield , исследователи используют более крупное оборудование, такое как реометр Tattersall, для измерения свойств раствора и бетона.


Реологическое оборудование т можно использовать для измерения начального сопротивления потоку, которое во время схватывания называется пределом текучести.Предел текучести начинает увеличиваться, и способность к течению теряется, исследователи заинтересованы в характеристиках текучести, чтобы понять, как процесс гидратации делает свежий бетон жестким и приводит к его застыванию.

Скорость гидратации можно контролировать несколькими способами, такими как температура, тип цемента и примеси . влияет на скорость, одной из наиболее важных переменных является температура окружающей среды, высокие температуры ускоряют гидратацию, так что схватывание также происходит быстрее. как последующее развитие силы.

Когда температура понижается, происходит обратное, хорошее практическое правило состоит в том, что на каждые 10 градусов Цельсия изменение температуры скорость гидратации изменяется в два раза, например, повышение температуры с 20 градусов Цельсия до 30. градусов Цельсия удваивает скорость увлажнения , важно помнить, что когда погода становится более прохладной, бетон медленно затвердевает и его необходимо хранить в формах в течение более длительного периода времени.

Гидратацию бетона также можно контролировать, используя различные типы цемента для противодействия влиянию высоких или низких температур в полевых условиях, например, использование 3 типов цемента противодействует холоду, поскольку они быстрее гидратируются, также есть специальные химические вещества. которые регулируют гидратации, могут быть добавлены в бетон, чтобы ускорить гидратацию.

Установить замедлители гидратации этих материалов широко доступны.

Таким образом, гидратация - это химическая реакция между цементом и водой, которая связывает частицы цемента и заполнитель в бетоне в прочный, и во время массирования одним из важных преимуществ бетона перед другими строительными материалами является то, что он смешивается. и формируется на месте и может принимать очень больших и гибких. Способность бетона быстро набирать прочность делает его ценным материалом для дорог, зданий, мостов и других важных сооружений .

Вам также понравится:

(Посещали 1491 раз, сегодня 1 посещали)

Продолжить чтение

.

слушателей Kafka - объяснение

(Это было опубликовано в блоге Confluent.io)


Этот вопрос возникает в StackOverflow и, например, размещает лот , так что вот что можно попробовать и помочь.

tl; dr : вам необходимо установить рекламируемых слушателей (или KAFKA_ADVERTISED_LISTENERS , если вы используете образы Docker) на внешний адрес (хост / IP), чтобы клиенты могли правильно подключаться к нему. В противном случае они попытаются подключиться к внутреннему адресу хоста - и если он недоступен, возникнут проблемы.

Другими словами, любезно предоставлено Спенсером Рупортом:

СЛУШАНИИ - это интерфейсы, к которым привязан Kafka. ADVERTISED_LISTENERS - это способы подключения клиентов.

В этом посте я расскажу о , почему это необходимо , а затем покажу , как это сделать , на основе нескольких сценариев - Docker и AWS.

Кто-нибудь слушает?

Kafka - это распределенная система. Данные считываются и записываются в Leader для данного раздела, который может находиться на любом из брокеров в кластере.Когда клиент (производитель / потребитель) запускается, он запрашивает метаданные о том, какой брокер является лидером для раздела - и он может сделать это с любого брокера . Возвращенные метаданные будут включать конечные точки, доступные брокеру Leader для этого раздела, и затем клиент будет использовать эти конечные точки для подключения к брокеру для чтения / записи данных по мере необходимости.

Именно эти конечные точки вызывают проблемы у людей. На одиночной машине , на которой работает «голый металл» (без виртуальных машин, без Docker), все может быть именем хоста (или просто localhost ), и это легко.Но как только вы перейдете к более сложным сетевым настройкам и множеству узлов, вам придется уделять этому больше внимания.

Предположим, у вас более одной сети. Это может быть что-то вроде:

  • Внутренние сети Docker плюс хост-компьютер
  • Брокеры в облаке (например, AWS EC2) и локальные машины локально (или даже в другом облаке)

Вам необходимо сообщить Kafka, как брокеры могут связаться друг с другом, но также убедиться, что внешние клиенты (производители / потребители) могут связаться с нужным им брокером.

Ключевым моментом является то, что когда вы запускаете клиента , брокер, который вы передаете ему, именно туда, куда он собирается пойти и получить метаданные о брокерах в кластере из . Фактический хост и IP-адрес, к которому он будет подключаться для чтения / записи данных, основаны на данных, которые брокер передает обратно в этом начальном соединении - даже если это всего лишь один узел, а возвращаемый брокером такой же, как один подключен к.

Для правильной настройки вы должны понимать, что брокеры Kafka могут иметь несколько слушателей .Слушатель - это комбинация

  1. Хост / IP
  2. Порт
  3. Протокол

Давайте проверим конфигурацию. Часто протокол используется и для имени слушателя, но здесь давайте сделаем его красивым и понятным, используя абстрактные имена для слушателей:

  KAFKA_LISTENERS: LISTENER_BOB: // kafka0: 29092, LISTENER_FRED: // localhost: 9092 KAFKA_ADVERTISED_LISTENERS: LISTENER_BOB: // kafka0: 29092, LISTENER_FRED: // localhost: 9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_BOB: PLAINTEXT, LISTENER_FRED: PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_BOB  

Я использую имена конфигурации Docker - эквиваленты, если вы настраиваете сервер .свойства напрямую (например, на AWS и т. д.) отображаются с отступом в следующем списке

  • KAFKA_LISTENERS - это список слушателей, разделенных запятыми, а также хост / IP-адрес и порт, к которым Kafka привязывается для прослушивания. Для более сложных сетей это может быть IP-адрес, связанный с заданным сетевым интерфейсом на машине. По умолчанию 0.0.0.0, что означает прослушивание на всех интерфейсах.
  • KAFKA_ADVERTISED_LISTENERS - это список слушателей, разделенных запятыми, с их хостом / IP и портом.Это метаданные, которые возвращаются клиентам.
  • KAFKA_LISTENER_SECURITY_PROTOCOL_MAP определяет пары ключ / значение для используемого протокола безопасности для каждого имени слушателя.
    • listener.security.protocol.map

Примечание. Сценарий, настраивающий образ Docker, использует имя прослушивателя, чтобы определить, включать ли элементы конфигурации SSL. Если вы хотите использовать SSL, вам необходимо включить SSL в ваше имя слушателя (например, LISTENER_BOB_SSL ).Спасибо Расс Сайерс за указание на это.

Брокеры Kafka обмениваются данными между собой , обычно во внутренней сети (например, в сети Docker, AWS VPC и т. Д.). Чтобы определить, какой прослушиватель использовать, укажите KAFKA_INTER_BROKER_LISTENER_NAME ( inter.broker.listener.name ). Используемый хост / IP-адрес должен быть доступен с компьютера-посредника для других.

Клиенты Kafka вполне могут быть не локальными по отношению к сети брокера, и здесь на помощь приходят дополнительные слушатели.

Каждый слушатель при подключении сообщит адрес, по которому он может быть достигнут. Адрес, по которому вы обращаетесь к брокеру, зависит от используемой сети . Если вы подключаетесь к брокеру из внутренней сети, это будет другой хост / IP, чем при внешнем подключении.

При подключении к брокеру прослушиватель, который будет возвращен клиенту, будет прослушивателем, к которому вы подключились (в зависимости от порта).

kafkacat - полезный инструмент для изучения этого.Используя -L , вы можете увидеть метаданные для слушателя, к которому вы подключились. На основе той же конфигурации слушателя, что и выше ( LISTENER_BOB / LISTENER_FRED ), проверьте соответствующие записи для брокера 0 по адресу : -

  • При подключении к порту 9092 (который мы отображаем как LISTENER_FRED ), адрес брокера возвращается как localhost

      $ kafkacat -b kafka0: 9092 \ -L Метаданные для всех тем (от брокера -1: kafka0: 9092 / bootstrap): 1 брокеров: брокер 0 на localhost: 9092  
  • При подключении к порту 29092 (который мы отображаем как LISTENER_BOB ) адрес брокера возвращается как kafka0 :

      $ kafkacat -b kafka0: 29092 \ -L Метаданные для всех тем (от брокера 0: kafka0: 29092/0): 1 брокеров: брокер 0 в kafka0: 29092  

Вы также можете использовать tcpdump для проверки трафика от клиента, подключающегося к брокеру, и определения имени хоста, возвращаемого брокером.

Почему я могу подключиться к брокеру, но клиент по-прежнему не работает?

tl; dr Даже если вы можете установить первоначальное соединение с брокером, адрес, возвращаемый в метаданных, все равно может быть для имени хоста, недоступного для вашего клиента.

Давайте рассмотрим это шаг за шагом.

  1. У нас есть брокер на AWS. Мы хотим отправить ему сообщение с нашего ноутбука. Нам известно внешнее имя хоста для экземпляра EC2 ( ec2-54-191-84-122.us-west-2.compute.amazonaws.com ). Мы создали необходимую запись в группе безопасности, чтобы открыть порт брокера для нашего входящего трафика. Мы делаем умные вещи, например проверяем, может ли наш локальный компьютер подключиться к порту на экземпляре AWS:

      $ NC -vz ec2-54-191-84-122.us-west-2.compute.amazonaws.com 9092 найдено 0 ассоциаций найдено 1 подключение: 1: флаги = 82 <СОЕДИНЕН, ПРЕДПОЧТИТЕЛЬНО> outif utun5 src 172.27.230.23 порт 53352 dst 54.191.84.122 порт 9092 информация о рейтинге недоступна Доступна информация о TCP aux Подключение к ec2-54-191-84-122.us-west-2.compute.amazonaws.com порт 9092 [tcp / XmlIpcRegSvc] успешно завершен!  

    Все хорошо! Бежим:

      echo "test" | kafka-console-maker --broker-list ec2-54-191-84-122.us-west-2.compute.amazonaws.com:9092 --topic test  

    Теперь… что будет дальше?

  2. Наш ноутбук успешно разрешает ec2-54-191-84-122.us-west-2.compute.amazonaws.com (на IP-адрес 54.191.84.122) и подключается к машине AWS через порт 9092

  3. Брокер получает входящее соединение на порт 9092. Он возвращает метаданные клиенту с именем хоста ip-172-31-18-160.us-west-2.compute.internal , потому что это имя хоста брокера и значение по умолчанию для слушателей .

  4. Клиент пытается отправить данные брокеру, используя предоставленные метаданные. Поскольку ip-172-31-18-160.us-west-2.compute.internal невозможно разрешить из Интернета, он не работает.

      $ echo "test" | кафка-консоль-производитель --broker-list ec2-54-191-84-122.us-west-2.compute.amazonaws.com:9092 - тематический тест >> [2018-07-30 15: 08: 41,932] ERROR Ошибка при отправке сообщения в тестовую тему с ключом: null, значение: 4 байта с ошибкой: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException: истекает срок действия 1 записи для test-0: с момента создания пакета прошло 1547 мсек плюс время задержки  
  5. Озадаченный, пробуем то же самое на самом брокерском автомате:

      $ echo "foo" | kafka-console-maker --broker-list ec2-54-191-84-122.us-west-2.compute.amazonaws.com:9092 - тематический тест >> $ kafka-console-consumer --bootstrap-server ec2-54-191-84-122.us-west-2.compute.amazonaws.com:9092 --topic test --from-begin фу  

    Работает нормально! Это потому, что мы подключаемся к порту 9092, который настроен как внутренний прослушиватель , и, таким образом, сообщает свое имя хоста как ip-172-31-18-160.us-west-2.compute.internal , которое является разрешается с машины брокера (так как это его собственное имя хоста!)

  6. Мы можем сделать жизнь еще проще, используя kafkacat .Используя флаг -L , мы можем увидеть метаданные, возвращаемые брокером:

      $ kafkacat -b ec2-54-191-84-122.us-west-2.compute.amazonaws.com:9092 -L Метаданные по всем темам (от брокера -1: ec2-54-191-84-122.us-west-2.compute.amazonaws.com:9092/bootstrap): 1 брокеров: брокер 0 по адресу ip-172-31-18-160.us-west-2.compute.internal: 9092  

    Ясно как день, возвращается внутреннее имя хоста . Это также делает эту, казалось бы, сбивающую с толку ошибку гораздо более понятной - подключение к одному имени хоста, получение ошибки поиска на другом:

      $ kafkacat -b ec2-54-191-84-122.us-west-2.compute.amazonaws.com:9092 -C -t test % ОШИБКА: Локальный: Ошибка разрешения хоста: ip-172-31-18-160.us-west-2.compute.internal: 9092/0: Не удалось разрешить ip-172-31-18-160.us-west -2.compute.internal: 9092 ': nodename или servname предоставлены или неизвестны  

    Здесь мы используем kafkacat в потребительском режиме ( -C ) с нашего локального компьютера, чтобы попытаться прочитать из темы. Как и раньше, поскольку мы получаем имя хоста внутреннего прослушивателя обратно от брокера в метаданных, клиент не может разрешить это имя хоста для чтения / записи.

Я видел ответ StackOverflow, предлагающий просто обновить мой файл hosts… не так ли проще?

Это не более чем способ обхода неправильной конфигурации, вместо того, чтобы исправлять ее.

Если брокер сообщает имя хоста, к которому клиент не может подключиться, то жесткое кодирование комбинации имя хоста / IP в локальный / etc / hosts может показаться хорошим решением. Но это очень хрупкое и ручное решение. Что происходит, когда IP меняется, когда вы перемещаете хосты и забываете взять с собой небольшой взлом, когда другие люди хотят сделать то же самое?

Намного лучше понять и исправить рекламируемый .настройка слушателей для вашей сети.

HOWTO: Подключение к Kafka на Docker

.

Редактирование списков свойств с помощью plutil - создание сценариев OS X

Сегодня утром наткнулся на этот вариант. Я не знаю, когда они были представлены, но я вижу варианты в 10.11 и 10.12. Вы можете увидеть их сами с помощью plutil -help . (Параметры не перечислены на странице man .)

Примечание. Управление и редактирование файлов и параметров списка свойств более подробно и подробно описано в моей книге «Списки свойств, предпочтения и профили для администраторов Apple»

Краткое резюме: plutil управляет файлами списка свойств.Его основное использование до сих пор заключалось в преобразовании между форматами списка свойств (в основном из двоичных списков в что-то читаемое)

  $ plutil -convert xml1 /path/to/propertylist.plist  

и для проверки допустимости синтаксиса

  $ plutil -lint /path/to/propertylist.plist  

В Sierra, когда вы запускаете plutil -help , вы видите несколько новых опций. Это позволяет вам напрямую управлять ключами и значениями в списке свойств. Это может быть полезно для замены PListBuddy и по умолчанию для управления списками свойств.

При тестировании я сразу заметил один недостаток plutil : его нельзя использовать для создания нового файла списка свойств. Скопируйте это, чтобы создать пустой файл plist:

     <дикт />   

Вставка новой пары ключ / значение

  $ plutil -insert somekey -string somevalue test.список $ plutil -insert flag -bool YES test.plist $ plutil -insert bestNumber -integer 1 test.plist $ plutil -insert pi -float 3.141592 test.plist  

Это довольно просто.

Проверка списка недвижимости

Вы можете использовать опцию -p , чтобы проверить наш прогресс:

  $ plutil -p test.plist { "newkey" => "newvalue" "пи" => 3,141592 "bestNumber" => 1 "flag" => 1 }  

Используется нестандартный формат вывода, и текст справки предупреждает об использовании этих списков синтаксического анализа.Но достаточно взглянуть на содержание.

Примечание: вы можете использовать plutil -p для чтения содержимого двоичных списков без преобразования!

Изменение значений

Вы можете изменить значения с помощью опции -replace .

  $ plutil -replace flag -bool NO test.plist  

Обратите внимание, что вы можете создавать новые записи с помощью -replace :

  $ plutil -replace otherkey -string othervalue test.plist  

Но вы не можете перезаписать существующее значение с помощью -insert .

Удаление значений

Очень просто:

  $ plutil - удалить другой ключ test.plist  

Массивы

Можно вставить пустой:

  $ plutil -insert list -xml '<массив />' test.plist  

или

  $ plutil -insert list -json '[]' test.plist  

и добавить элементы в массив

  $ plutil -insert list.0 -string 'элемент списка 1' test.plist $ plutil -insert list.1 -строка 'элемент списка 2' test.plist $ plutil -insert list.2 -string 'элемент списка 3' test.plist  

или все сразу

  $ plutil -replace list -json '[«да», «нет», «возможно»]' test.plist  

Словари

  $ plutil -insert dictionary -xml '' test.plist $ plutil -replace dictionary -json '{}' test.plist $ plutil -insert dictionary.key1 -string value1 test.plist $ plutil -replace dictionary -json '{"otherkey": "othervalue"}' test.список  

Получение значений

Похоже, что -экстракт предназначен для получения значений из списка свойств, но есть оговорка. -extract не просто получит значение ключа в списке свойств, но запишет его в новый файл! И по умолчанию, если вы не укажете новый путь к выходному файлу с опцией -o , он перезапишет текущий файл с извлеченными данными.

Правильный неразрушающий синтаксис для использования -экстракта :

  $ plutil -extract список xml1 -o - test.список $ plutil -extract список json -o - test.plist  

Это напечатает полный файл списка свойств на stdout . Параметр -o - указывает plutil печатать на stdout . Вы можете указать имя файла вместо - .

Поскольку вывод перегружен синтаксисом json или xml, его будет сложно использовать для получения значений списка свойств в сценариях оболочки. Тем не менее, по-прежнему может быть полезно, ну, извлечь данные списка свойств из сложного файла plist.

Заключение

Имейте в виду, что теперь существует альтернатива по умолчанию и PlistBuddy . Может оказаться полезным отсутствие преобразования списка перед изменением данных, а также возможность манипулировать массивами и словарями с помощью ключевых путей. (Вы по-прежнему должны всегда использовать по умолчанию при работе с файлами plist предпочтений, поскольку по умолчанию будет проходить через систему настроек и возможность уведомить процесс об обновлении данных.)

Если вы используете python или аналогичный язык сценариев высокого уровня, все равно будет более эффективно использовать библиотеки для списков свойств.

Связанные

.

Смотрите также