Date: Wed, 16 May 2001 08:58:36 -0700 From: "C Peter Biessener" <pbiessener@hirshfields.com> To: "FreeBSD Questions" <freebsd-questions@freebsd.org> Subject: RE: Help w/ Awk Message-ID: <NEBBLEMLMLOBKEKOJLBHIECDCAAA.pbiessener@hirshfields.com> In-Reply-To: <MOBBIPGJKBNNPGLGMFHFIEIBHCAA.don@whtech.com>
next in thread | previous in thread | raw e-mail | index | archive | help
I think your problem lies with the way for-do-done parses the input it is
given. If you are comfortable with awk, I would write the entire script in
awk - using the associative arrays that awk has, then in the END {} section
print your output. I've never personally read the awk manpage, I use the
O'Reilly book 'sed & awk' for a reference.
e.g.
$ awk -f _script.awk_ /etc/passwd > passwd.out
with _script.awk_ something like this:
BEGIN {
FS=":"
count = 1
}
{ user[count] = print $1
UID[count] = print $3
GID[count] = print $4
count += 1
}
END {
#print output here
}
-----Original Message-----
From: owner-freebsd-questions@FreeBSD.ORG
[mailto:owner-freebsd-questions@FreeBSD.ORG]On Behalf Of Don O'Neil
Sent: Tuesday, May 15, 2001 6:10 PM
To: freebsd-questions@FreeBSD.ORG
Subject: Help w/ Awk
I'm trying to write a simple script to extract the user name, UID and GID of
each user in the /etc/passwd file and I'm not quite sure what I'm doing
wrong here.... here's a code snippet;
#!/bin/sh
passwd=`cat /etc/passwd`
for user in $passwd
do
username=`echo $user | awk 'BEGIN { FS=":" } END { print $1 }'`
echo $username
done
Where am I going wrong with awk? Sometime the result of $username is the
user name, but sometimes its another part of the entry in the file. I just
want the user name stuck into username.
Thanks!
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?NEBBLEMLMLOBKEKOJLBHIECDCAAA.pbiessener>
