/etc/passwdでUIDが1000を超えるユーザーをインポートする

/etc/passwdでUIDが1000を超えるユーザーをインポートする

/etc/passwdループを使用して、1000以上のUIDからユーザー名を取得しようとしていますfor。以下の簡単なスクリプトはbash機能しますが、何らかの理由でユーザー名を2回印刷します。

#!/bin/bash

for userid in `awk -F: '{print $3}' /etc/passwd`
do
if (("$userid" >= 1000)); then
echo "Valid User" :`cat /etc/passwd | grep $userid | awk -F: '{print $1,$3}'`
fi
done

答え1

この試み、

 awk -F ':' '$3>=1000 {print "Valid User :"$1","$3}'  /etc/passwd

おそらく1000や10001などのユーザーIDがあるかもしれません。したがって、forループで繰り返すと、grepは重複を引き起こします。

次のように試す

 echo "Valid User" :`cat /etc/passwd | grep ":$userid:" | awk -F: '{print $1,$3}'`

関連情報