我想从ini文件的节名创建一个var,如:
[foo]
; ...
[bar]
; ...
[baz:bar]
;...
现在我需要一个类似
的varSECTIONS="foo bar baz"
提前致谢
答案 0 :(得分:2)
一线解决方案可能是:
export SECTIONS=`grep "^\[" test.ini |sort -u | xargs | tr '\[' ' ' | tr '\]' ' ' `
答案 1 :(得分:1)
SECTIONS=$(crudini --get your.ini | sed 's/:.*//')
答案 2 :(得分:-1)
我现在正在使用这个结构,不需要知道某个部分是否存在。只是读它,它是空的它不存在:D
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