ホームディレクトリが/ homeにあり、Bash Shellをコマンドソルバーとして使用しているシステムに登録されているユーザーの数を表示する方法は?
答え1
使用getent
とawk
:
getent passwd | awk -F: '$6 ~ "^/home/" && $7 ~ "bash$"{print $1}'
これにより、bashパスとシェルがbashに設定されているホームディレクトリ内のすべてのユーザーを見つけ、/home/
ユーザー名のリストを印刷します。
ユーザー数だけを返すには、awk
プログラムを次のように変更できます。
getent passwd | awk -F: '$6 ~ "^/home/" && $7 ~ "bash$"{c+=1}END{print c}'
答え2
次の行(つまり、次から始まるフィールド)を持つファイルと、より多くのgrep
非文字、最後の前に1つの文字しかありません。/etc/password
:/home
/home
:
:
/bin/bash
$ grep ':/home/[^:]*:/bin/bash' /etc/passwd
terdon:x:1000:1000::/home/terdon:/bin/bash
bib:x:1001:1001::/home/bib:/bin/bash
したがって、数字だけを表示するだけです。
$ grep -c ':/home/[^:]*:/bin/bash' /etc/passwd
2