/etc/passwd에서 UID가 1000보다 큰 사용자 가져오기

/etc/passwd에서 UID가 1000보다 큰 사용자 가져오기

/etc/passwd루프를 사용하여 1000보다 크거나 같은 UID에서 사용자 이름을 얻으 려고 합니다 for. 아래의 간단한 스크립트는 bash작동하지만 어떤 이유로 사용자 이름을 두 번 인쇄합니다.

#!/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}'`

관련 정보