[freetds] Problems Connecting Debian --> MSSQL through odbc

James K. Lowden jklowden at freetds.org
Wed Jul 15 22:04:48 EDT 2009


Steve Langasek wrote:
> 
> > 	DRIVER=$(echo ${DRIVER_LINE} \
> > 	| awk -F '[[:space:]]*=[[:space:]]*' '{print $2}')
> 
> > sh -x echoes: 
> 
> > > ++ echo Driver = FreeTDS
> > > ++ awk -F '[[:space:]]*=[[:space:]]*' '{print $2}'
> > > + DRIVER=
> 
> > It's as though your awk doesn't accept Posix regular expressions as a
> > field separator.  Is there any reason to think that could be so?  What
> > does "awk --version" say?  
> 
> > $ awk --version
> > GNU Awk 3.1.3
> > Copyright (C) 1989, 1991-2003 Free Software Foundation.
> 
> gawk supports this syntax, mawk (the default on Debian) does not.

Thanks Steve!  Am I missing something, or is that totally broken?  

http://193.110.243.4/hppd/hpux/Shells/mawk-1.3.3/man.html

"mawk conforms to the Posix 1003.2 (draft 11.3)"

Posix Regular expression for awk are defined by the OpenGroup: 

http://www.opengroup.org/onlinepubs/009695399/utilities/awk.html#tag_04_06_13_04

which refers to 

http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_01

which clearly defines [:space:] as a basic RE character class expression. 


So mawk claims to be Posix-compliant, but isn't.  Not supporting Posix
regular expressions in 2009 is just lame. 

Bah.  Why do they do this?  

Sorry, Jaap, afaict your awk nonstandard.  Thanks for bringing it to my
attention.  I'll modify osql to test for that.  

--jkl


More information about the FreeTDS mailing list