ini 파일이 예상 위치에 있는지 확인한 후(방법을 배웠습니다) 파일 형식이 올바른지 확인하고 싶습니다. 파일에 있는 "사이트" 항목의 수에 관계없이 유효성을 검사하고 각 항목이 새 줄을 포함하여 아래 패턴을 따르는지 확인하고 싶습니다.
1| [site1]
2| shortcut=x1
3| site=example1.com
4| theme=alpha
5|
6| [site2]
7| shortcut=x2
8| site=example2.com
9| theme=beta
10|
개별 값을 읽으면서 확인했습니다. 파일을 처리하기 전에 패턴이 올바른지 확인하고 패턴이 올바르지 않으면 패턴이 끊어지는 줄 번호를 에코하고 싶습니다.
답변1
크루디니(Crudeni)를 시도해 볼 수 있습니다.
crudini --get file.ini |
while read section; do
test "$(crudini --get t.ini $section | paste -d, - - -)" = \
'shortcut,site,theme' ||
echo error in section $section
done
답변2
가능한 옵션:
BEGIN{
FS="="
}
{
if ($1~/\[.*\]/) {
in_section=1;
sec_name=$1
next
};
if ($1~/^$/) {
if ((c!=3) || (err)) {
print "error in section "sec_name
};
in_section=0;
sec_name="";
c=0;
err=0
};
if (in_section) {
if ($1=="shortcut") {c++; next};
if ($1=="site") {c++; next};
if ($1=="theme") {c++; next};
err=1
};
}
END{
if (in_section) {
print "error in section "sec_name
};
}