Я записал немного программы для парсинга hg log
вывод командной строки, который, оказывается, похож:
changeset: 90:abcdef012345
tag: tip
user: me
date: Sat Apr 30 17:42:05 2011 -0700
summary: Made another change
changeset: 89:def012345abc
user: me
date: Sat Apr 30 16:52:19 2011 -0700
summary: Made a change
На самом деле моя программа достаточно универсальна для парсинга любого "ключа: оцените" пар, пока каждая новая запись разделяется пустой строкой.
Теперь я хочу сойти с ума и попытаться выполнить его против некоторых других (реальных) данных. Есть ли любая другая программа, которая генерирует "ключ: оценить" данные как это?
С двумя командами, TR и sed, можно преобразовать его к более подобному записи формату:
echo 'changeset: 90echo 'changeset: 90:abcdef012345
tag: tip
user: me
date: Sat Apr 30 17:42:05 2011 -0700
summary: Made another change
changeset: 89:def012345abc
user: me
date: Sat Apr 30 16:52:19 2011 -0700
summary: Made a change
' | tr '\n' ';' | sed 's/;;/\n/'
changeset: 90:abcdef012345;tag: tip;user: me;date: Sat Apr 30 17:42:05 2011 -0700;summary: Made another change
changeset: 89:def012345abc;user: me;date: Sat Apr 30 16:52:19 2011 -0700;summary: Made a change;;
Однако, если бы это - Ваш формат, я перешел бы к более подобному Формату CSV. Вы не должны повторять заголовок в каждой строке, и с вкладками вместо''; или'', (если Вам не нужны вкладки как содержание), Вы получаете формат, который очень хорошо проанализировать вручную, сравнить строки, к grep строкам с grep, и произвести графики с LibreOffice или поместить данные в базу данных.
Если у Вас есть более энергозависимый формат, xml мог бы быть лучше - не по сути, но потому что существует столько инструментов там.
В Главе 5 ESRs запись "Искусства Программирования Unix, возможно, Вы находите некоторое вдохновение для своей работы.