on Sat, Aug 25, 2001 at 07:29:57PM -0600, Cameron Matheson (cmatheson3@yahoo.com) wrote: > On 25 Aug 2001 18:19:53 -0700, Osamu Aoki wrote: > > > Writing TEXT processing script in BASH is just a quick job. For real > > world needs, use AWK (See Karsten's answer to your post), PERL, or PYTHON. > > Don't forget Ruby :) > Sorry, but it's my favorite... i just need to start learning it better ;-) Actuallly, I should be forcing myself to use Python, but habits die hard and I just know my way around sed and awk pretty well, so they're the first thing I turn to when a shell script stops being what I want. I've actually updated my AWK script to something more full-featured. Attached. -- Karsten M. Self <kmself@ix.netcom.com> http://kmself.home.netcom.com/ What part of "Gestalt" don't you understand? There is no K5 cabal http://gestalt-system.sourceforge.net/ http://www.kuro5hin.org Free Dmitry! Boycott Adobe! Repeal the DMCA! http://www.freesklyarov.org Geek for Hire http://kmself.home.netcom.com/resume.html
#!/usr/bin/awk -f # Script to create a file suitable for use in the 'newusers' command, # from a file consisting of user IDs and passwords in the form: # First Last password # Copyright (c) KMSelf Sat Aug 25 20:47:38 PDT 2001 # Distributed under GNU GPL v 2, or at your option, any later version. # This program is distributed WITHOUT ANY WARRANTY. BEGIN { # Assign starting UID, GID if ( ARGC > 2 ) { startuid = ARGV[1] delete ARGV[1] } else { printf( "Usage: newusers <startUID> <file>\n" \ "...where startUID is the starting userid to add, and file is \n" \ "an input file in form <first name> <last name> <password>\n" \ ) exit } infile = ARGV[1] printf( "Starting UID: %s\n\n", startuid ) } /^#/ { next } { ++record first = $1 last = $2 passwd = $3 user= substr( tolower( first ), 1, 1 ) tolower( last ) uid = startuid + record - 1 gid = uid printf( "%s:%s:%d:%d:%s %s,,/home/%s:/bin/bash\n", \ user, passwd, uid, gid, first, last, user \ ) }
Attachment:
pgpRifYJvEFUr.pgp
Description: PGP signature