次のようなiniファイルのセクション名からvarを作成したいと思います。
[foo]
; ...
[bar]
; ...
[baz:bar]
;...
今私はのような変数が必要です
SECTIONS="foo bar baz"
前もって感謝します
1行のソリューションは次のとおりです。
export SECTIONS=`grep "^\[" test.ini |sort -u | xargs | tr '\[' ' ' | tr '\]' ' ' `
SECTIONS=$(crudini --get your.ini | sed 's/:.*//')
私は現在この構成を使用しています。セクションが存在するかどうかを知る必要はありません。読んでください。空の場合は存在しません。
INI_FILE=test.ini
function ini_get
{
eval `sed -e 's/[[:space:]]*\=[[:space:]]*/=/g' \
-e 's/;.*$//' \
-e 's/[[:space:]]*$//' \
-e 's/^[[:space:]]*//' \
-e "s/^\(.*\)=\([^\"']*\)$/\1=\"\2\"/" \
< $INI_FILE \
| sed -n -e "/^\[$1\]/,/^\s*\[/{/^[^;].*\=.*/p;}"
echo ${!2}
}
IP=$(ini_get 50001 ip)
PORT=$(ini_get 50001 port)
echo $IP:$PORT