Date: Fri, 24 May 1996 22:03:26 +0200 (MET DST) From: J Wunsch <j@uriah.heep.sax.de> To: owensc@enc.edu Cc: freebsd-bugs@FreeBSD.org Subject: Re: bug in awk Message-ID: <199605242003.WAA23587@uriah.heep.sax.de> In-Reply-To: <Pine.FBS.3.93.960524091252.252E-100000@dingo.enc.edu> from Charles Owens at "May 24, 96 09:27:26 am"
next in thread | previous in thread | raw e-mail | index | archive | help
As Charles Owens wrote:
> ls -1 *.doc \
> | awk '{FS="."; print "cp " $1 ".doc /usr/local/man/cat1/" $1 ".1" }'
>
> This produces:
> cp crc.doc.doc /usr/local/man/cat1/crc.doc.1
> cp minirb.doc /usr/local/man/cat1/minirb.1
> Note the problem that the first line has. This behavior is repeatable,
I think this is expected behaviour. The first line has been parsed,
using the default FS value. *After* parsing it, you're going to set
FS to a new value, so it will affect the next (and all following)
lines.
The correct ways to do it:
. use the -F . option, or
. use ``awk 'BEGIN {FS="."} {print "cp " $1 ...}' ''
--
cheers, J"org
joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605242003.WAA23587>
