Result to awk question...

Claude.P.Cantin at NRC.CA Claude.P.Cantin at NRC.CA
Tue Jun 12 02:09:19 AEST 1990


From:         Claude.P.Cantin%NRC.CA at vm.nrc.ca
Subject:      awk question...
To:           info-iris at BRL.MIL
Message-ID:  <9006091601.aa04003 at VGR.BRL.MIL>


>I'm writting a script in which a variable takes the value of a userid.
>I then want to find out who this userid refers to.

>I want to do that in one line, involving awk (I know how to do it using
>multiple lines of code).

>If the userid is 123, the following would do just fine:

>   awk -F: '$3 == 123 {print $1}' /etc/passwd

>BUT 123 is the content of a variable, say UID.  The following does NOT
>work:

>   awk -F: '$3 == $UID {print $1}' /etc/passwd

>(the output is NOTHING).

>I have tried several variations, including "$UID", and "$3"=="$UID", etc.,
>but none worked...

>Anyone has an insight????


Thanks to those who responded:  Those two variations both worked:



Well, you got close...try:  awk -F: '$3 == "'$UID'" {print $1}' /etc/passw

This works for  sh  or  csh.  Also, if you're on an SGI box, I recommend
"nawk" instead of "awk".

        awk -F: '$3 == '$UID' {print $1}' /etc/passwd



Special thanks to :

      Loki Jorgenson Rm421 <loki at Physics.McGill.CA>
      "Ronald B. Adams II" <texbell!redsim!adams at BRL.MIL>
      marcel at tnoibbc.ibbc.tno.nl (Marcel Boender)
      tim at ben.dciem.dnd.ca



More information about the Comp.sys.sgi mailing list