3

我想从 ini 文件的部分名称创建一个 var,例如:

[foo]
; ...

[bar]
; ...

[baz:bar]
;...

现在我需要一个像

SECTIONS="foo bar baz"

提前致谢

4

3 回答 3

2

一种解决方案可能是:

export SECTIONS=`grep "^\[" test.ini |sort -u | xargs | tr '\[' ' ' | tr '\]' ' ' `
于 2012-06-05T09:48:45.103 回答
1
SECTIONS=$(crudini --get your.ini | sed 's/:.*//')
于 2015-01-12T12:05:33.967 回答
-1

我现在正在使用这个构造,不需要知道一个部分是否存在。只是阅读它,如果它是空的,它不存在。

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
于 2010-09-16T08:28:29.440 回答