[tz] winnow patches
Alan Barrett
apb at cequrux.com
Sat Sep 7 14:57:01 UTC 2013
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)
More information about the tz
mailing list