グループファイル項目を操作したい。 [閉じる]

グループファイル項目を操作したい。 [閉じる]

ファイルがあるとしましょう。

uid=1(a) groups=cat,dog,hen
uid=2(b) groups=cat,hen
uid=3(c) groups=hen
uid=4(d) groups=dog,hen,buffalo,horse

私が探しています:

cat a,b
dog a,d
hen a,b,c,d
buffalo d
horse d

リスト#1:ユーザーとセカンダリグループ(ユーザー別)

リスト#2:グループとユーザー(グループに属する)

ベストアンサー1

awk -F "[= ,()]" '{
    for(i=6;i<=NF;i++){
        if(a[$i] != ""){
            a[$i]=a[$i]","$3
        }else{
            a[$i]=$3
        }
    }
}
END{
    for ( i in a){
        print i,a[i]
    }
}'

各グループメンバーで索引付けされた配列を作成し、uidグループメンバーが行に見つかったら配列に追加します。最初はEND配列インデックスと配列の値です。

おすすめ記事