如何编写linux脚本,列出/ etc / passwd中的所有用户及其UID
User1 uid=0001
User2 uid=0002
...
脚本应该使用:grep,cut,id,for
答案 0 :(得分:29)
awk -F: '$0=$1 " uid="$3' /etc/passwd
在这种情况下,awk更容易。
-F将字段分隔符定义为:
所以你想要的是第一和第三列。所以构建$0
以提供输出格式。
这是强大的awk的基本用法。如果您经常遇到这类问题,可能需要阅读一些教程。
这次你有鱼,如果我是你,我会做一些关于钓鱼的研究。
答案 1 :(得分:8)
cut
对此很好:
cut -d: -f1 /etc/passwd
这意味着"使用:
作为分隔符,除了/etc/passwd
文件"的每一行中的第一个字段之外的所有内容。
答案 2 :(得分:3)
我认为最好的选择就是:
的 grep "/bin/bash" /etc/passwd | cut -d':' -f1
强>
答案 3 :(得分:0)
awk -F':' '$3>999 {print $1 " uid: " $3}' /etc/passwd | column -t | grep -v nobody
为您提供包括用户ID在内的所有常规用户(uid> = 1000)。