• ベストアンサー

グループIDからグループ名を取得する方法

グループIDからグループ名を取得したいのですが、 grep グループID /etc/group | cut -d: -f1 | uniq もっと簡単な方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

grep GID /etc/group の代わりに getent group GID とか。 あとは#1さんの書かれているパイプで……ですかね。 他にもUDやGIDから求める方法がありそうな気がしますが……。

vbvdv
質問者

お礼

getentは知りませんでした。これが求めていたものに一番近い気がします。 他にも使い道があって便利そうですね。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.3

簡単かどうかはともかく、1コマンドでやるなら、 awk -F: '$3==100{print $1}' /etc/group おなじGIDが複数個あるときに先頭だけ表示するなら、 awk -F: '$3==100{print $1;exit}' /etc/group

vbvdv
質問者

お礼

なるほど、awkだと一発で済みますね。 これを気にawkの使い方を勉強してみたいと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。
noname#208507
noname#208507
回答No.1

「簡単」がキーを打つ回数を減らしたいしたいという意味でしたら、シェルスクリプトにするのが良いと思います。グループIDの部分をシェルスクリプトの引数に置き換えて。 質問に書かれた方法だと、例えば100番と1000番のグループがあったとき100で探すと両方ともヒットしてしまいます。下のようにすれば1つに限定できます。(グループIDの重複を許可した場合はやはり複数ヒットしますが) grep :グループID: /etc/group | cut -d: -f1

vbvdv
質問者

お礼

確かに、コロンで挟んだほうが正確ですね。 「簡単」というのは、引数にIDを渡せば名前が返ってくるようなものを想定していたのですが、グループIDが重複できることを考えるとそういうのはなさそうですね。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A