# passwd.awk --- access password file information # # Arnold Robbins, arnold@skeeve.com, Public Domain # May 1993 # Revised October 2000 BEGIN { # tailor this to suit your system _pw_awklib = "c:/progra~1/Gawk/libexec/awk/" } function _pw_init( oldfs, oldrs, olddol0, pwcat, using_fw) { if (_pw_inited) return oldfs = FS oldrs = RS olddol0 = $0 using_fw = (PROCINFO["FS"] == "FIELDWIDTHS") FS = ":" RS = "\n" pwcat = _pw_awklib "pwcat" while ((pwcat | getline) > 0) { _pw_byname[$1] = $0 _pw_byuid[$3] = $0 _pw_bycount[++_pw_total] = $0 } close(pwcat) _pw_count = 0 _pw_inited = 1 FS = oldfs if (using_fw) FIELDWIDTHS = FIELDWIDTHS RS = oldrs $0 = olddol0 } function getpwnam(name) { _pw_init() if (name in _pw_byname) return _pw_byname[name] return "" } function getpwuid(uid) { _pw_init() if (uid in _pw_byuid) return _pw_byuid[uid] return "" } function getpwent() { _pw_init() if (_pw_count < _pw_total) return _pw_bycount[++_pw_count] return "" } function endpwent() { _pw_count = 0 }