В bash:
1) Для данного groupname
интереса и
2) списка keys
интереса, для которого мы хотим таблицу значений , для этого имя группы ,
3), считанные в наборе файлов как в /usr/share/applications
(см. упрощенный пример ниже) ,
4) и создайте таблицу с разделителями, по одной строке на файл и по одному полю для каждого данного ключа.
ПРИМЕР
входы
Нам нужны только значения ключей Name и Exe c, только с [Desktop Entry]
групп и из одного или нескольких файлов, например:
[Desktop Entry]
Name=Root
Comment=Opens
Exec=e2
..
[Desktop Entry]
Comment=Close
Name=Root2
output
Две строки, по одной на входной файл, каждая в Формат <Name>,<Exec>
с разделителями, готовый для импорта в базу данных:
Root,e2
Root2,
Каждый входной файл:
- Один или несколько блоков строк, разделенных [some -groupname].
- Ниже каждого [. *] находится одна или несколько стандартных несортированных пар ключ = значение.
- Не каждый блок содержит одинаковый набор ключей.
[Простите, если я прошу решение старой проблемы, но я не могу похоже, нашел хороший, быстрый bash способ сделать это. Да, я мог бы написать код за некоторое время и прочитать циклы и т. Д. c ... но, конечно, это было сделано раньше.]
По аналогии с этим Q но нужен более общий ответ.