2013-11-28 6 views
9

Wie ein Skript für Linux wich Liste zu schreiben, alle Benutzer von/etc/passwd und ihre UIDLinux - Wie alle Benutzer zur Liste

User1 uid=0001 
User2 uid=0002 

...

das Skript verwenden shoul: grep, Schnitt, ID, für

+11

Dies ist wirklich keine Hausaufgabenplattform. – SBI

Antwort

29
awk -F: '$0=$1 " uid="$3' /etc/passwd 

awk ist in diesem Fall einfacher.

-F definiert Feldtrenn als :

so wollen Sie ist 1. und 3. colums. Erstellen Sie also die $0, um Ihr Ausgabeformat bereitzustellen.

Dies ist eine sehr grundlegende Verwendung von leistungsstarken awk. Vielleicht möchten Sie einige Tutorials lesen, wenn Sie sich häufig mit dieser Art von Problem konfrontiert sehen.

Diesmal hast du Fisch, wenn ich du bin, werde ich ein paar Nachforschungen darüber anstellen, wie man angeln kann.

+3

+1 für den Vorschlag zu lernen, wie man fischt – Will

8

cut ist schön für diesen:

cut -d: -f1 /etc/passwd 

Das bedeutet, „Schnitt, : als Trennzeichen verwenden, alles außer dem ersten Feld aus jeder Zeile der /etc/passwd Datei“.

2

Ich denke, die beste Wahl, wie das ist:
grep "/bin/bash" /etc/passwd | cut -d':' -f1

+1

diese Antwort ist, was ich suche. Es gibt Benutzern, die sich über die GUI anmelden können :) –

0
awk -F':' '$3>999 {print $1 " uid: " $3}' /etc/passwd | column -t | grep -v nobody 

Gibt Ihnen alle regulären Benutzer (uid> = 1000) bestellt ordentlich die Benutzer-ID enthält.