INI-файлы для бедных

Чтение INI-файлов для бедных. Немного bash и крупица sed. Отлично подойдёт для конфигов на десяток параметров. Если параметр встречается в конфиге несколько раз, используется только последнее значение.

Умеет

  • игнорировать комментарии (всё, что после октото́рпа и точки с запятой),
  • длинные значения, в том числе с пробелами (будьте аккуратнее с пробелами в шелле, не забывайте экранировать),
  • игнорировать незнакомые имена и ошибки синтаксиса.

Не умеет

  • различать секции,
  • указывать на незнакомые имена,
  • следить за синтаксисом.
while read I ; do
    I=`(echo $I | sed "s/[#;\[].\+$//; s/^ \+//; s/ \+$//;
                       /^ \+$/d; /[^=]\+=[^=]\+/!d; s/\s\+=\s\+/=/")`
    case `echo $I | cut -d= -f1` in
        'some_value')
            SOME=`echo $I | cut -d= -f2` ;;
        'another_value')
            ANOTHER=`echo $I | cut -d= -f2` ;;
        'yet_another_value')
            YET_ANOTHER=`echo $I | cut -d= -f2` ;;
	esac
done < /path/to/file.ini

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

thirty five − = 29