









|
[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
[NMLUG] grep help
Ed Heron wrote:
> I'm writing a bash script that needs to check if a particular person is
> in a specific group.
>
> I'm using:
>
> if grep "^${group}:.*[:,]${user}[,$]" /etc/group >/dev/null ; then echo
> "${user} is a member of ${group}" ; fi
>
> Unfortunately, if $user is last in the list it appears to be false. If
> I `grep "^${group}:.*[:,]${user}$" /etc/group` it succeeds.
>
> I don't use many regexp, am I missing something?
Looks like the square brackets are breaking '$' as a metacharacter. I
used alternation instead, and got success:
for group in audio video; do for user in bigpig yvonne; do if \
grep "^$group:.*[:,]$user\(,\|$\)" /etc/group >/dev/null ; then echo \
"${user} is a member of ${group}" ; fi; done; done
Jody
--
http://www.RealizationSystems.com/ -- start communicating
http://www.GalacticSlacker.com/ -- read it and weep
http://www.NMPerspective.com/ -- a Southwest Perspective
|
|