68user's page 掲示板

Prev< No. 3929〜3930> Next  [最新発言に戻る] [過去ログ一覧]
No. 3929 # yoshitani 2004/08/17 (火) 10:58:56
/etc/passwdファイルからグループIDがゼロになっているユーザを出力する場合、
「grep ':00*:' /etc/passwd」とすると
rootだけが以下のような内容で引っかかります。
「root:x:0:1:Super-User:/:sbin/sh」
しかし、何故これがひっかかるのかがわかりません。
grepの条件で「:00*:」としているのに、なぜこれを含んでいないrootの
行がひっかかるのでしょうか?ご存知の方、教えていただけませんでしょうか。
OSはSolaris7を使用しています。
  

No. 3930 # 68user 2004/08/17 (火) 13:20:17
>>3929 yoshitani
> grepの条件で「:00*:」としているのに
:00*: は、
      コロンがあって、その後に 0 があって、その後に 0個以上の
      0 があって、その後にコロンがある
という正規表現ですので、
> 「root:x:0:1:Super-User:/:sbin/sh」
の :0: の部分にマッチします。

GID が 0 のものを引っ張りたいなら、
    % grep ':[0-9][0-9]*:0:' /etc/passwd
    % awk -F: '$4~/^0$/ {print}' /etc/passwd
などとすればよいかと思います。

Prev< No. 3929〜3930> Next  [最新発言に戻る] [過去ログ一覧]