awk
を使用できます このタスク:
awk -F: '$3 >= 1000' /etc/passwd
これにより、/etc/passwd
が分割されます コロンでファイルし、フィールド 3 (ユーザー ID) が 1000 以上の場合、/etc/passwd
全体を出力します。
このリストからユーザー名だけを取得したい場合:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
$1 は etc/passwd
の最初のフィールドです これはユーザー名です。
システムがローカル ユーザー (つまり、/etc/passwd
に記録されているユーザー) のみを認識すると仮定します。 、LDAP、NIS、または Winbind などのリモート サービスを介して認証されるものとは対照的に)、grep
を使用できます。 、 sed
、または awk
/etc/passwd
からデータを抽出する . awk
が最も柔軟ですが、sed
を使用したソリューションはどうでしょうか。 :
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
gid
を持つすべてのユーザーを取得する必要があります は 1000 以上です。そのためには、次のコマンドを使用します:
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
システムユーザー (gid<1000) が必要な場合は、次のようになります:
awk -F: '($3<1000){print $1}' /etc/passwd