Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!sun-barr!decwrl!decvax!zinn!ditka!dasys1!jpr From: jpr@dasys1.UUCP (Jean-Pierre Radley) Newsgroups: comp.unix.wizards Subject: Re: awk & variables Keywords: awk variables Message-ID: <9911@dasys1.UUCP> Date: 6 Jun 89 21:09:03 GMT References: <23206@dhw68k.cts.com> <9139@csli.Stanford.EDU> Reply-To: jpr@dasys1.UUCP (Jean-Pierre Radley) Organization: TANGENT Lines: 21 In article <23206@dhw68k.cts.com>, jaff@dhw68k.cts.com (Mark Jaffe) writes: > Awk seems to be lacking something, but maybe it's really there. I want to > match a pattern that I don't know until I execute the script, so I want to > pass in a pattern to match in a variable. I can't get this to work! Here's > what I'm doing, on a Sun: > SYSVER=`awk '{print $3}' < /etc/motd` > awk ' $0 ~ $SYSVER { print substr($0, 3, length - 2) } ' < cs35if.h > cs35.if If you wanted to really get into hairy quotation mechanisms, you could even extract your /etc/motd info from within awk. But this should work for you: SYSVER=`awk '{print $3}' < /etc/motd` awk " /"$SYSVER"/ { print substr($0, 3, length - 2) } " < cs35if.h > cs35.if BTW, I think it faster to change your first line to: set `/etc/motd` ; SYSVER=$3 -- Jean-Pierre Radley CIS: 72160,1341 jpr@jpradley.UUCP