从 /etc/passwd 获取 UID >= 1000 的用户

从 /etc/passwd 获取 UID >= 1000 的用户

我正在尝试/etc/passwd使用循环从 UID 等于/大于 1000获取用户名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。所以你的 grep 会在 for 循环中迭代时导致重复。

尝试作为

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

相关内容