On Sun, 01 Sep 2013, Zefram wrote:
OK, patches. You can pull the changes from my git repo, <git://git.fysh.org/zefram/tz.git> branch zefram/winnow. It's based on Eggert's current master branch. Unfortunately the first patch, which adds the population data, is a bit big for the mailing list:
While trying to test this code, I encountered two problems in the awk programs. 1. The standard awk split() function does not accept regular expressions delimited by slashes. For example, you should use the standard split(region_data, rd, "\\n") instead of the non-standard split(region_data, rd, /\n/) 2. In standard awk, the command line option "-v variable=value" requires the "value" part to be expressed in the same notation as is used for double-quoted strings in awk source code. By my reading of the POSIX specification for awk <http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html>, this implies that raw newlines are not allowed there, although newlines encoded as \n are allowed. You can deal with this using environment variables, like this: winnow_result=$( d="$region_data" \ $AWK ' BEGIN { d = ENVIRON["d"] gsub(/\t[^\t\n]*/, "", d) print d exit } ' </dev/null | [...] Alternatively, you could pass positional arguments instead of options, like this: winnow_result=$( $AWK ' BEGIN { d = ARGV[1] gsub(/\t[^\t\n]*/, "", d) print d exit } ' \ "$region_data" \ </dev/null | [...] --apb (Alan Barrett)