Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
group.awk88 linesDownload Raw Back to awk
1# group.awk --- functions for dealing with the group file2#3# This file and how to use it are described in the manual.4# Therefore, we respectfully advise you to Read The Fine Manual5# for more information.6#7# Arnold Robbins, arnold@skeeve.com, Public Domain8# May 19939# Revised October 200010# Revised December 201011 12BEGIN {13    # Change to suit your system14    _gr_awklib = "/usr/lib/awk/"15}16 17function _gr_init(    oldfs, oldrs, olddol0, grcat,18                             using_fw, using_fpat, n, a, i)19{20    if (_gr_inited)21        return22 23    oldfs = FS24    oldrs = RS25    olddol0 = $026    using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")27    using_fpat = (PROCINFO["FS"] == "FPAT")28    FS = ":"29    RS = "\n"30 31    grcat = _gr_awklib "grcat"32    while ((grcat | getline) > 0) {33        if ($1 in _gr_byname)34            _gr_byname[$1] = _gr_byname[$1] "," $435        else36            _gr_byname[$1] = $037        if ($3 in _gr_bygid)38            _gr_bygid[$3] = _gr_bygid[$3] "," $439        else40            _gr_bygid[$3] = $041 42        n = split($4, a, "[ \t]*,[ \t]*")43        for (i = 1; i <= n; i++)44            if (a[i] in _gr_groupsbyuser)45                _gr_groupsbyuser[a[i]] = _gr_groupsbyuser[a[i]] " " $146            else47                _gr_groupsbyuser[a[i]] = $148 49        _gr_bycount[++_gr_count] = $050    }51    close(grcat)52    _gr_count = 053    _gr_inited++54    FS = oldfs55    if (using_fw)56        FIELDWIDTHS = FIELDWIDTHS57    else if (using_fpat)58        FPAT = FPAT59    RS = oldrs60    $0 = olddol061}62function getgrnam(group)63{64    _gr_init()65    return _gr_byname[group]66}67function getgrgid(gid)68{69    _gr_init()70    return _gr_bygid[gid]71}72function getgruser(user)73{74    _gr_init()75    return _gr_groupsbyuser[user]76}77function getgrent()78{79    _gr_init()80    if (++_gr_count in _gr_bycount)81        return _gr_bycount[_gr_count]82    return ""83}84function endgrent()85{86    _gr_count = 087}88 
codekingpro/portable-devtools · Team Ai