Portál AbcLinuxu, 12. května 2025 04:11

Dotaz: dva dotazy na bash

9.5.2010 20:27 dav3
dva dotazy na bash
Přečteno: 325×
Odpovědět | Admin
Potřeboval bych poradit, jak udělat v bashi:

1) mám skript.sh parametr1 parametr2 ... parametrN

for PARAMETR in $* do ... done #Tohle projde všechny parametry

Jak tím for cyklem projít všechny parametry mimo prvního?

2) Jaký je nejjednodušší způsob jak vypsat rádky uživatelů z /etc/passwd jejichž původní shell není bash a jejich následné setřídění podle příjmení osob?

Předem moc děkuju

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (krtek007)
9.5.2010 20:56 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: dva dotazy na bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak tím for cyklem projít všechny parametry mimo prvního?
man shift
Jaký je nejjednodušší způsob jak vypsat rádky uživatelů z /etc/passwd jejichž původní shell není bash a jejich následné setřídění podle příjmení osob?
man grep
man sort
A příště zkuste u školních úloh nejdřív něco sám vymyslet ;-). Kompletní řešení Vám tady nikdo nenapíše.
I am always ready to learn although I do not always like to be taught. (W. Churchill)
10.5.2010 23:38 dav3
Rozbalit Rozbalit vše Re: dva dotazy na bash
Za ten shift děkuju moc

K tomu druhému jsem vymyslel toto:

řádek vypadá takto novak:x:10001:10001:Petr Novák:/home/novak:/bin/bash

grep -v ":/bin/bash$" /etc/passwd | cut -f5 -d: | cut -f2 -d" " | sort | ... a mám sloupec příjmení .. teď jak k tomu dát ty sloupce jak tam byly..

Nechápu, jak se dostat k příjmení, pokud nechci ztratit ostatní sloupce. Pomůže někdo?

10.5.2010 23:51 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: dva dotazy na bash
Nechápu, jak se dostat k příjmení, pokud nechci ztratit ostatní sloupce.
Buď řadit s určením pozice (sort -k 5,5) nebo si sloupec, podle kterého chci řadit, zkopírovat na začátek a pak ho zahodit – nějak takhle (a určitě to jde napsat i lépe):
gawk -F: '{ print $5 ":" $1 ":" $2 ":" $3 ":" $4 ":" $5 ":" $6 ":" $7; }' \
    | sort | cut '-d:' -f 2-
Plus dořešit jak seřadit lidi bez příjmení (resp. bez mezery ve jméně).
I am always ready to learn although I do not always like to be taught. (W. Churchill)
10.5.2010 23:53 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: dva dotazy na bash
sort -k 5,5
Ještě chybí -t: kvůli oddělovači.
I am always ready to learn although I do not always like to be taught. (W. Churchill)
12.5.2010 09:03 dav3
Rozbalit Rozbalit vše Re: dva dotazy na bash
Díky za pomoc, sice to
sort -k 5,5 -t:
nefungovalo, ale vymyslel jsem toto:
grep -v "/bin/bash$" /etc/passwd | sort -k2 -t" "

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.