Potrzebowałem dzisiaj prosty parser, dla pliku konfiguracyjnego w moim skrypcie pisanym w bashu. Padło na .ini i genialne wygooglowane rozwiązanie
#!/bin/bash
CONFIG_FILE="config.ini"
SECTION="section_1"
eval `sed -e 's/[[:space:]]*\=[[:space:]]*/=/g' \
-e 's/;.*$//' \ -e 's/[[:space:]]*$//' \
-e 's/^[[:space:]]*//' \
-e "s/^\(.*\)=\([^\"']*\)$/\1=\"\2\"/" \
< $CONFIG_FILE \
| sed -n -e "/^\[$SECTION\]/,/^\s*\[/{/^[^;].*\=.*/p;}"`Co ważne autor pomysłu udostępnia go zgodnie z zasadami licencji WTFPL. 😉
Oryginał dostępny tu: http://www.tuxz.net/blog/archives/2011/10/19/parse__ini_files_with_bash_and_sed/