![](https://seccdn.libravatar.org/avatar/9c21e784e8adf2b95833a223b0495834.jpg?s=120&d=mm&r=g)
Hallo Liste. Ich hatte mal auf einer Webseite gelesen, wie man etwa aus der passwd alle Accounts mit einer UID > x herausgreppen kann, also zB alle normalen Benutzer. Es gelingt mir nicht, diese Seite zu ergoogeln. Kann mir jemand auf die Sprünge helfen? Danke. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/ebe9e7470f033d101415722d029f0b24.jpg?s=120&d=mm&r=g)
Am Freitag, 17. August 2007 schrieb Andre Tann:
Hallo Liste.
Ich hatte mal auf einer Webseite gelesen, wie man etwa aus der passwd alle Accounts mit einer UID > x herausgreppen kann, also zB alle normalen Benutzer. Es gelingt mir nicht, diese Seite zu ergoogeln. Kann mir jemand auf die Sprünge helfen?
googeln dauert länger wie man-page lesen :-) nicht grep, sondern awk awk -F: < /etc/passwd '($3 >= 1000) {printf "%5d %s\n", $3, $1;}' Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
![](https://seccdn.libravatar.org/avatar/7cf94e20656d4d219ee2a3a5380fe929.jpg?s=120&d=mm&r=g)
Andre Tann wrote:
Ich hatte mal auf einer Webseite gelesen, wie man etwa aus der passwd alle Accounts mit einer UID > x herausgreppen kann, also zB alle normalen Benutzer. Es gelingt mir nicht, diese Seite zu ergoogeln. Kann mir jemand auf die Sprünge helfen?
awk -F: '$3>=1000 { print $1 }' /etc/passwd Cheers, Th. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/9c21e784e8adf2b95833a223b0495834.jpg?s=120&d=mm&r=g)
Thomas Hertweck, Freitag, 17. August 2007 21:30:
awk -F: '$3>=1000 { print $1 }' /etc/passwd
Das kenne ich. Aber wenn ich das richtig erinnere, dann ging das doch auch mit grep. Richtig? -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/7cf94e20656d4d219ee2a3a5380fe929.jpg?s=120&d=mm&r=g)
Andre Tann wrote:
Thomas Hertweck, Freitag, 17. August 2007 21:30:
awk -F: '$3>=1000 { print $1 }' /etc/passwd
Das kenne ich. Aber wenn ich das richtig erinnere, dann ging das doch auch mit grep. Richtig?
Nicht dass ich wuesste. grep selbst kennt erst einmal keine Felder, d.h. Du kannst so ohne weiteres erst einmal nicht auf die UID zugreifen. Evtl. geht das Ganze ueber regulaere Ausdruecke, die grep unterstuetzt, aber das erscheint mir alles viel zu kompliziert, da evtl. eine Pipe noetig wird, um das Ergebnis weiter zu verarbeiten. David weiss sicher mehr ;-) Wenn es um Tabellen im ASCII Format geht (nichts anderes ist /etc/passwd), ist awk eigentlich das Tool der Wahl. Einfacher als oben angegeben geht es kaum. Cheers, Th. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Fre, 17 Aug 2007, Thomas Hertweck schrieb:
Andre Tann wrote:
Thomas Hertweck, Freitag, 17. August 2007 21:30:
awk -F: '$3>=1000 { print $1 }' /etc/passwd
Das kenne ich. Aber wenn ich das richtig erinnere, dann ging das doch auch mit grep. Richtig?
Nicht dass ich wuesste. grep selbst kennt erst einmal keine Felder, d.h. Du kannst so ohne weiteres erst einmal nicht auf die UID zugreifen. Evtl. geht das Ganze ueber regulaere Ausdruecke, die grep unterstuetzt, aber das erscheint mir alles viel zu kompliziert, da evtl. eine Pipe noetig wird, um das Ergebnis weiter zu verarbeiten. David weiss sicher mehr ;-) Wenn es um Tabellen im ASCII Format geht (nichts anderes ist /etc/passwd), ist awk eigentlich das Tool der Wahl. Einfacher als oben angegeben geht es kaum.
ACK. Und ja, man _kann_ mit grep + cat was zusammenbasteln, das UIDs > 1000 ausspuckt egrep '^[^:]*:[^:]*:[1-9][0-9][0-9][0-9]+:' /etc/passwd | cut -d ':' -f 1 Und das ist aber u.U. immer noch nicht korrekt und schon ziemlich unsch-Aön.-b Ein 'grep -o' ist -Aübrigens nicht portabel bzw. funktioniert unter-b aktuellen Linuxen: $ grep -o -e 'foo' /etc/passwd grep: invalid option -- o $ grep --version grep (GNU grep) 2.2 Und !GNU grep Versionen k-Aönnen AFAIK eh kein '-o'.-b Und awk ist schneller und v.a. flexibler, da man bequem Felder auch numerisch mit festen Werten oder Variablen vergleichen kann. Und man kann die Ergebnisse leichter weiterverarbeiten, da man z.B. gezielt einzelne Felder mit 'printf' formatiert ausgeben kann oder sonstwas. Z.B. nur die zwischen 1000 und 2000: awk -F':' '$3 >= 1000 && $3 < 2000 { print $1; }' /etc/passwd UID > 1000 aber nicht 'nobody': awk -F':' '$3 >= 1000 && $1 != "nobody" { print $1; }' /etc/passwd nur die mit nem ~ unter /home/: awk -F':' '$3 >= 1000 && $6 ~ /^\/home\// { print $1; }' /etc/passwd Vergleich mit ner Variablen: awk -F':' '$3 >= minuid { print $1; }' minuid=1000 /etc/passwd bzw. awk -F':' -vminuid=1000 '$3 >= minuid { print $1; }' /etc/passwd usw. Achso, man sollte evtl. besser 'getent passwd | ' verwenden anstatt /etc/passwd zu lesen. -dnh -- PANIC YE NOT: go have a drink -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1212c32d2d2bdb192a7b16b2c4523080.jpg?s=120&d=mm&r=g)
Hallo, wie wärs damit: "grep -i '[1-9][0-9][0-9][0-9]' /etc/passwd|cut -d: -f1|sort"? Alle Nutzer mit einer UID >= 1000, sortiert. Gruß, Marko -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/7cf94e20656d4d219ee2a3a5380fe929.jpg?s=120&d=mm&r=g)
Marko Schugardt wrote:
wie wärs damit:
"grep -i '[1-9][0-9][0-9][0-9]' /etc/passwd|cut -d: -f1|sort"?
Alle Nutzer mit einer UID >= 1000, sortiert.
Das ist keine korrekte Loesung des Problems, da sie nicht nur auf UIDs anspricht. Beispiel: mdnsd:x:78:65534:mDNSResponder runtime user:/var/lib/mdnsd:/bin/false UID ist 78, wird aber von Deiner Loesung trotzdem ausgegeben. Genau so wuerde ein User, der sich "Walter2001" nennt (5. Feld), ausgegeben werden. CU, Th. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/9c21e784e8adf2b95833a223b0495834.jpg?s=120&d=mm&r=g)
Marko Schugardt, Samstag, 18. August 2007 00:09:
"grep -i '[1-9][0-9][0-9][0-9]' /etc/passwd|cut -d: -f1|sort"?
Yep, das wars: das Zusammenspiel von grep und cut. Danke und Gruß! -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1212c32d2d2bdb192a7b16b2c4523080.jpg?s=120&d=mm&r=g)
Thomas Hertweck schrieb:
Das ist keine korrekte Loesung des Problems, da sie nicht nur auf UIDs anspricht.
Stimmt, dann das: sort -t: -k 3,3 /etc/passwd|grep -i '[1-9][0-9][0-9][0-9]'|cut -d : -f 1 Marko -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/7cf94e20656d4d219ee2a3a5380fe929.jpg?s=120&d=mm&r=g)
Marko Schugardt wrote:
Thomas Hertweck schrieb:
Das ist keine korrekte Loesung des Problems, da sie nicht nur auf UIDs anspricht.
Stimmt, dann das:
sort -t: -k 3,3 /etc/passwd|grep -i '[1-9][0-9][0-9][0-9]'|cut -d : -f 1
Auch das ist keine korrekte Loesung, Du aenderst lediglich die Sortierung der Zeilen von /etc/passwd - sie sind nach dem sort ueber die dritte Spalte sortiert. Das grep spricht aber weiterhin auf falsche Zeilen und Felder an. Wenn Du es wirklich kompliziert machen willst, brauchst Du z.B. eine Kombination aus "cut -d: -f1,3", dann ein "grep", dann ein weiteres "cut", insgesamt also mind. 2 Pipes. Ehrlich gesagt, ich bevorzuge awk. Cheers, Th. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1212c32d2d2bdb192a7b16b2c4523080.jpg?s=120&d=mm&r=g)
Wieder falsch, ich lasse es >_<. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/6cacaf4eb2894c2da1aaf9dab186ef82.jpg?s=120&d=mm&r=g)
Marko Schugardt wrote:
Wieder falsch, ich lasse es >_<.
egrep -o -e '^(.+):.+:[0-9]{4,}' /etc/passwd | cut -d: -f1 -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1212c32d2d2bdb192a7b16b2c4523080.jpg?s=120&d=mm&r=g)
Sandy Drobic schrieb:
egrep -o -e '^(.+):.+:[0-9]{4,}' /etc/passwd | cut -d: -f1
Genau. ;-) Marko -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/7cf94e20656d4d219ee2a3a5380fe929.jpg?s=120&d=mm&r=g)
Marko Schugardt wrote:
Sandy Drobic schrieb:
egrep -o -e '^(.+):.+:[0-9]{4,}' /etc/passwd | cut -d: -f1
Genau. ;-)
Ne, immer noch eine Pipe zu viel ;-) Th. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/6cacaf4eb2894c2da1aaf9dab186ef82.jpg?s=120&d=mm&r=g)
Thomas Hertweck wrote:
Marko Schugardt wrote:
Sandy Drobic schrieb:
egrep -o -e '^(.+):.+:[0-9]{4,}' /etc/passwd | cut -d: -f1 Genau. ;-)
Ne, immer noch eine Pipe zu viel ;-)
Grins! Mehr ist mit grep aber wirklich nicht drin. Wenn die Option -o wenigstens auf das geklammerte Muster ansprechen würde, dann käme ich um das letzte cut herum. (^-^) Insgesamt aber wahr, für das Aufspalten von Textzeilen und Herauspuhlen von Stücken ist in der Shell awk das beste Mittel. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Sam, 18 Aug 2007, Sandy Drobic schrieb:
Marko Schugardt wrote:
Wieder falsch, ich lasse es >_<.
egrep -o -e '^(.+):.+:[0-9]{4,}' /etc/passwd | cut -d: -f1
$ egrep -o -e foo /etc/passwd egrep: invalid option -- o Und das ist sogar ein GNU grep. In http://www.opengroup.org/onlinepubs/7990989775/xcu/grep.html http://www.opengroup.org/onlinepubs/7990989775/xcu/egrep.html finde ich auch keine Hinweise auf eine Option '-o'... -dnh, mal wieder den Horizont ein wenig weiter steckend, *scnr* -- Cats give a whole new meaning to the phrase "fuzzy logic". -- Seanette Blaylock, in nanae -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1212c32d2d2bdb192a7b16b2c4523080.jpg?s=120&d=mm&r=g)
Michael Skiba schrieb:
Benutze awk, ehrlich es ist hier das Mittel der Wahl ;)
Ja, ihr habt Recht, ich geb mich geschlagen :-D. Marko -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/95bf8795d2703f0024d688dc0dfa2ad5.jpg?s=120&d=mm&r=g)
* Andre Tann <atann@gmx.net> [2007-08-17 21:12]:
Ich hatte mal auf einer Webseite gelesen, wie man etwa aus der passwd alle Accounts mit einer UID > x herausgreppen kann, also zB alle normalen Benutzer. Es gelingt mir nicht, diese Seite zu ergoogeln. Kann mir jemand auf die Sprünge helfen?
BTW: getent ist besser als /etc/passwd zu benutzen da dies auch funktioniert wenn man NIS verwendet. Gruß, Bernhard -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (8)
-
Andre Tann
-
Bernhard Walle
-
David Haller
-
Dr. Jürgen Vollmer
-
Marko Schugardt
-
Michael Skiba
-
Sandy Drobic
-
Thomas Hertweck