Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 04 Oct 2010 05:31:50 +0900
From:      poyopoyo@puripuri.plala.or.jp
To:        freebsd-stable <freebsd-stable@freebsd.org>
Subject:   Re: is there a bug in AWK on 6.x and 7.x (fixed in 8.x)?
Message-ID:  <8662xjdnm1.wl%poyopoyo@puripuri.plala.or.jp>
In-Reply-To: <D9FBB57B75131949A71B706EB2074498BDF94F88@SRVPPE02.t-systems.cz>
References:  <4CA78EE3.9020005@quip.cz> <4CA82024.8010503@bsdforen.de>

next in thread | previous in thread | raw e-mail | index | archive | help
At Sun, 3 Oct 2010 15:09:35 +0200,
Roub$(D+?+-(Bek Zden$(D+5(Bk wrote:
> >> awk 'FS="," { print $1"-"$2 }' GeoIPCountryWhois.csv

This code is equivalent to

awk '(FS=","){} { print $1"-"$2 }' GeoIPCountryWhois.csv

so I think it is OK not to separate the first line with ",".
However, from the latest one-true-awk/FIXES source we have in src/contrib,

| Nov 26, 2009:
|         fixed a long-standing issue with when FS takes effect.  a
|         change to FS is now noticed immediately for subsequent splits.

AWK seems intentionally changed this behaviour. When FS has been changed,
working line is immediately re-parsed with new FS. This explains
why 8.x awk print *intended* $1"-"$2 though older and GNU ones do not.

> I met the very same problem some time ago, not a bug, feature.
> 
> http://www.mail-archive.com/freebsd-questions@freebsd.org/msg55958.html
> 
> Still, one interesting question remains, why 8.x behaves in a different way then the previous versions.

Now both are their own feature.
Conclusion: avoid ambiguous code as far as it could.

-- 
kuro



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8662xjdnm1.wl%poyopoyo>