merlyn@iwarp.intel.com (Randal Schwartz) (07/28/90)
In article <19253@well.sf.ca.us>, whofan@well (Brian Lawrence Dear) writes: | The following is a portion of an installation script. This portion | reads the /etc/group file, figures out what's the next available | group ID, and then creates a new group and assigns it that next | available ID number: | | gid=`/usr/bin/cut -f3 -d: /etc/group|sort -n|tail -1` | gid=`eval $gid + 1` | echo "mygroup::$gid:user1,user2,usern" >> /etc/group | | Thing is, the /usr/bin/cut command is not available on everyone's | SCO XENIX machine. /usr/bin/cut gets installed if you install | the SCO Text Processing stuff. | | So.. my question is, is there an alternative to the script | above that I can use and rest assured it'll work on all SCO | XENIX 386 platforms, to add a new group as described? awk -F: '{if (maxgid < $3) maxgid = $3} END { print "mygroup::" maxgid+1 ":user1,user2,usern" }' /etc/group >>/tmp/$$ cat /tmp/$$ >>/etc/group; rm /tmp/$$ It'd be about the same in Perl, as in: perl -pi.bak -e '$t=(split(/:/))[2]; $m = $t if $m < $t; $_ .= sprintf ("mygroup::%d:user1,user2,usern\n",$m+1) if eof;' /etc/group which leaves the old /etc/group in /etc/group.bak. But, as you said, you want it to work on all SCO XENIX platforms, and Perl isn't installed there (yet... just wait!). Just another Perl hacker, -- /=Randal L. Schwartz, Stonehenge Consulting Services (503)777-0095 ==========\ | on contract to Intel's iWarp project, Beaverton, Oregon, USA, Sol III | | merlyn@iwarp.intel.com ...!any-MX-mailer-like-uunet!iwarp.intel.com!merlyn | \=Cute Quote: "Welcome to Portland, Oregon, home of the California Raisins!"=/