[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bash : user in eine array lesen und dann sortieren


Hallo,

Am 05.10.2012 um 13:22 Uhr schrieb Christian Eichert <eichertc@xxxxxxxxx>:
> ich hab noch so ein "Hallo Welt" Thema, bitte nicht lachen :))
> Ich moechte das die Mittglieder eine Gruppe quasi das Ergaebnis von
>     groups username
>     username : eins zwei drei vier fuenf
> in eine array eingeben.
> quasi so :
>     declare -a USER=('eins' 'zwei' 'drei' 'vier' 'fuenf');
> wie geht das ?
> geht das auch alphabetisch ?

also ich wuerde das spontan wie folgt loesen:
ARRAY=( $(groups username | sed 's/.*: //' | tr " " "\n" | sort) )

Man beachte dass man ein Array auch ohne declare erstellen kann, also
ARRAY=( .. )

Desweiteren kann man anstatt `befehl` auch $(befehl) schreiben, das kann 
copy&paste-freundlicher sein.

So, und jetzt koennte man noch einen Trick anwenden, wenn die Eingabe ans Array 
z.B. nur durch RETURN aber nicht durch Leerzeichen getrennt werden soll:
IFS="
"
ARRAY=( $(befehl) )
unset IFS

Also wenn die Ausgabe von "befehl"
Ein Satz
Zweiter Satz
waere, dann waere ARRAY[0] gleich "Ein Satz" und ARRAY[1] gleich "Zweiter Satz". 
IFS steht fuer input field separator. Per Default steht der auf 
"<space><tab><newline>", wenn er nicht gesetzt ist (unset IFS) wird auch der 
Default genommen.


Noch allgemein zur bash, ich persoenlich finde den "Advanced Bash-Scripting 
Guide" (http://tldp.org/LDP/abs/html/) eine sehr gute Lektuere bei der 
Erforschung der bash. Wenn man den durch hat und auch verstanden hat, dann 
kapiert man auch allmaehlich "man bash" und kann sich dort weiterbilden.


-- 
Gruss
                                                          \|/
       eMHa                                              (o o)
------------------------------------------------------oOO--U--OOo--
 Markus Hochholdinger
 e-mail  mailto:Markus@xxxxxxxxxxxxxxxxx             .oooO
 www     http://www.hochholdinger.net                (   )   Oooo.
------------------------------------------------------\ (----(   )-
Ich will die Welt veraendern,                           \_)    ) /
aber Gott gibt mir den Quelltext nicht!                      (_/



-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/