#!/usr/bin/gawk -f config["FOO1"] = "Some String;Foo Bar"; config["FOO2"] = "Some String"; config["FOO3"] = "Some String"; function trim(string) { sub("^[ \t]", "", string); sub("[ \t]*$", "", string); return string; } function warning(msg) { print msg > "/dev/stderr" } function get_extra(var) { line = trim(config[var]); warning("get_extra() in: "line); retval = "" sub("^;", "", line); sub(";$", "", line); while (line != "") { warning("line_ "line); $0 = line; match($0, ".*;"); off=RLENGTH; warning("RLENGTH="RLENGTH); $0 = substr($0, off+1); warning("$1="$1) if (length($2) != 0) { warning("$2="$2) if (length($3) != 0) { warning("$3="$3) } } line=substr(line,0,off-1); } } get_extra("FOO3"); get_extra("FOO1"); get_extra("FOO2");