Aqui está um script awk que tenta produzir recuo decente. Ele supõe que a entrada é bem formada (por exemplo, a linha antes de 3.2.2
deve ser 3.1
ou 3.1.something
, não 3
).
#! /usr/bin/awk -f
BEGIN { printf "(bookmarks"; depth = 1; }
{
level = split($1, s, ".");
while (level < depth) {--depth; printf ")";}
print "";
depth = level + 1;
gsub(/[\"]/, "\&");
page = $NF;
sub(/ +[^ ]*$/,"");
for (i in s) printf " ";
printf "(\"%s\" \"#%s\"", $0, page;
}
END { while (depth-- > 0) printf ")"; print ""; }
A sintaxe DJVU não tem nada a ver com XML; estas são s-expressions .