bash script on FreeBSD

Paul Schmehl pschmehl_lists at tx.rr.com
Wed Oct 8 21:08:17 UTC 2008


--On Wednesday, October 08, 2008 14:16:02 -0500 Giorgos Keramidas 
<keramida at ceid.upatras.gr> wrote:

>
> On Wed, 08 Oct 2008 12:11:40 +0700, Kalpin Erlangga Silaen
> <kalpin at muliahost.com> wrote:
>> Dear all,
>>
>> I am going to extract field username and UID from /etc/passwd and
>> passed into some scripts.  Let say I got line
>>
>> admin 100
>> admin2 200
>> admin3 300
>> admin4 400
>>
>> and then I want to echoing into screen:
>>
>> admin has uid 100
>> admin2 has uid 200
>> admin3 has uid 300
>> admin4 has uid 400
>>
>> How do I make this with bash script?
>
> You don't really need bash for this.
>
> Here's a sample awk script that should work:
>
>     % cat -n /tmp/userlist.awk
>          1  #!/usr/bin/awk -f
>          2
>          3  {
>          4          print $1,"has uid",$2;
>          5  }
>     % chmod 0755 /tmp/userlist.awk
>     % cat /tmp/user-data
>     admin 100
>     admin2 200
>     admin3 300
>     admin4 400
>     % /tmp/userlist.awk < /tmp/user-data
>     admin has uid 100
>     admin2 has uid 200
>     admin3 has uid 300
>     admin4 has uid 400
>     %

Sure, but why use an elephant to swat a flea when

awk 'FS=":"; {print $1" has uid "$3}' /etc/passwd | sort -k 4 -n

works fine and returns the accounts in numerical order?

-- 
Paul Schmehl, Senior Infosec Analyst
As if it wasn't already obvious, my opinions
are my own and not those of my employer.
*******************************************
Check the headers before clicking on Reply.



More information about the freebsd-questions mailing list