回答:
使用するgetent代わりに、手動で読み取りを、グループ及びユーザー情報を処理するためのコマンドを/etc/passwd、/etc/groupsシステム自体が使用するなど/etc/nsswitch.conf、それから、その情報を取得する場所を決定すること、およびファイルの設定が他のソースによって上書きされてもよいです。getentこの構成に従います。getentソースに関係なく、ファイルと同じ形式でデータを出力するため、解析と同じ方法で出力を解析できます/etc/passwd。
getent group sudo | awk -F: '{printf "Group %s with GID=%d\n", $1, $3}'
ユーザー名については、これがはるかに簡単であることに注意してください。使用id:
$ id -u lightdm
105
これは次のようにして簡単に実行できますcut。
$ cut -d: -f3 < <(getent group sudo)
27
getent group sudoファイルsudoからグループに関する行を取得し/etc/groupます:
$ getent group sudo
sudo:x:27:foobar
次に、で区切られた3番目のフィールドを取得し:ます。
それに応じて出力文字列が必要な場合は、次の範囲内でコマンド置換を使用しますecho。
$ echo "Group sudo with GID="$(cut -d: -f3 < <(getent group sudo))""
Group sudo with GID=27
% echo "Group cdrom with GID="$(cut -d: -f3 < <(getent group sudo))"" Group cdrom with GID=27、もう少し一般的なものにしてください=)
GID="$(getent group cdrom | cut -d: -f3)"ですか?
より複雑な答えは常に歓迎されます-私はそれらを非常に正直に読むことから多くを学びます。
メールグループのグループIDを探していて、その情報が保存されている場所を知らなかったため、このページを見つけました。
あなたの答えは素晴らしいです-ここに私が思いついた簡単なものがあります
def @ fourof4:/ home $ cat / etc / group | grepメール
mail:x:8:
私はそれがIDを整理しないことを知っていますが、それは私の目的を果たしました。
Blockquote試してみる:awk -F: '/ sudo / {print "Group" $ 1 "with GID =" $ 3}' / etc / group-AB Jun 23 '15 at 15:51 Blockquote
私は引用したもののほかにこれも言及されていることを見る....誰もが私の愛を得る-あなたがいなくてすみません
これが私をそのファイルに導いたものです。
感謝し、あなたが望むどんな形でも優れたものを私に与え続けてください!def
perlワンライナーの使用:
% perl -ne '@elements=(split /:/); printf "Group %s with GID=%s\n",$elements[0],$elements[2]' <<< $(getent group sudo)
Group sudo with GID=27
またはそれより短い(より良い)
% perl -F/:/ -ane 'printf "Group %s with GID=%s\n",$F[0],$F[2]' <<< $(getent group sudo)
Group sudo with GID=27
-Fか、-lオプションのことを行います。
必要なものに対するハック:(まだもっと良い答えがあるかもしれません)
awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep "group-name"
よりシンプルなバージョン(@ABのおかげ):
awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
例:
$ awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep sudo
Group sudo with GID=27
awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
awkより短いperl)=