グループに属するユーザーリスト

/etc/gorupと/etc/passwdから、必要な項目を取り出し
グループごとにそれぞれのGID一致したユーザー名を出力する。

#!/usr/bin/sh
IFS_DEF=IFS
IFS="
"
for grouplist in `cat /etc/group`; do
    groupid=`echo $grouplist | cut -d":" -f3`
    groupname=`echo $grouplist | cut -d":" -f1`
    groupuser=`echo $grouplist | cut -d":" -f4`
    echo "Groupname = $groupname, GID = $groupid"
    if [ ! $groupuser == '\n' ]; then
        echo $groupuser | tr ' ' '\n'
    fi  
    for userlist in `cat /etc/passwd`; do
        usergroupid=`echo $userlist | cut -d":" -f4`
        username=`echo $userlist | cut -d":" -f1`
        if [ $groupid -eq $usergroupid ]; then
            echo $groupuser | grep $username > /dev/null
            if [ $? -ne 0 ]; then
                echo $username
            fi
        fi
    done
done
IFS=$IFS_DEF