Anda dapat menggunakan awk untuk tugas ini:
awk -F: '$3 >= 1000' /etc/passwd
Ini akan membagi /etc/passwd file dengan titik dua, maka jika bidang 3 (userid) lebih besar dari atau sama dengan 1000, itu akan mencetak seluruh /etc/passwd merekam.
Jika Anda hanya ingin mengeluarkan nama pengguna dari daftar ini, maka:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Di mana $1 adalah kolom pertama dari etc/passwd yang merupakan nama pengguna.
Misalkan sistem hanya mengenali pengguna lokal (yaitu yang tercatat di /etc/passwd , berbeda dengan yang diautentikasi melalui layanan jarak jauh seperti LDAP, NIS, atau Winbind), Anda dapat menggunakan grep , sed , atau awk untuk mengekstrak data dari /etc/passwd . awk adalah yang paling fleksibel, tetapi bagaimana dengan solusi dengan sed :
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
Anda harus mendapatkan semua pengguna yang memiliki gid lebih besar dari atau sama dengan 1000. Gunakan perintah ini untuk itu:
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Jika Anda menginginkan pengguna sistem (gid<1000) itu akan menjadi:
awk -F: '($3<1000){print $1}' /etc/passwd