Portál AbcLinuxu, 15. července 2025 16:57


Dotaz: Skript pro setrideni a vypis tabulky v shellu

31.3.2004 12:57 Václav
Skript pro setrideni a vypis tabulky v shellu
Přečteno: 149×
Odpovědět | Admin
Mám následující problém:

Soubor data.txt ma nasledujici strukturu:

Polozka1 @ Polozka2 @ ... @ PolozkaN

------------------------------------------------

Hodnota11 @ Hodnota21 @ ... @ HodnotaN1

Hodnota12 @ Hodnota22 @ ... @ HodnotaN2

:

Hodnota1M @ Hodnota2M @ ... @ HodnotaNM

(@ = tabelator)

Napsat scenar pro shell, ktery vypise prislusne informace podle zadanych polozek. Scenar by mel mit nasledujici parametry:

vypis -h -ilist -olist -ffile -h vypise napovedu -ilist, seznam list obsahuje seznam polozek podle kterych se bude rozepisovat -olist, seznam list obsahuje seznam polozek, ktere se maji vypsat -ffile, soubor file obsahuje vstupni data

Napriklad prikaz vypis -i3,4 -o2,1 -fstudenti kde soubor studenti obsahuje

Prijmeni Jmeno Rocnik Skupina

---------------------------------------

Novak @ Petr @ 3 @ 24

Dvorak @ Jiri @ 3 @ 24

Kovarikova @ Lenka @ 3 @ 23

Michalek @ Karel @ 4 @ 12

Cesilko @ Mirek @ 3 @ 23

(@ pouzity tabelatory - vse zarovnano pod sebou)

vypise nasledujici informace

Rocnik 3 @ Skupina 23

@@ Lenka Kovarikova

@@ Mirek Cesilko

@ Skupina 24

@@ Petr Novak

@@ Jiri Dvorak

Rocnik 4

@ Skupina 12

@@ Karel Michalek

Konkretne nevim, jak ukladat postupne ty cisla sloupcu u parametru -i a -o do promennych (nikde jsem se nedocetl, jak definovat pole nebo neco podobnyho ve skriptu) a taky, jak podle nich setridit a nasledne vypsat skupiny ve vyse uvedenym formatovani.

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

Odpovědi

31.3.2004 15:14 Yeti
Rozbalit Rozbalit vše Re: Skript pro setrideni a vypis tabulky v shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak definovat a používat pole v bashi, je napsáno v sekci Arrays bash(1) (a jen já sám jsem to tu popisoval alespoň dvakrát, navíc je to tu myslím i v té sérii článku o bashi, stačí hledat). Ale nepiš to předně v shellu, pokud tím nechceš strávit půl života, jak už jsem ti napsal předtím...
Josef Kufner avatar 31.3.2004 15:19 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Skript pro setrideni a vypis tabulky v shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Myslim ze by to slo udelat pomoci grepu (vybrat si zajimave radky) a sortu (rozume seradit), ale nejak nechapu, co presne je ucelem :(
Hello world ! Segmentation fault (core dumped)
9.4.2004 04:27 zombie | skóre: 2
Rozbalit Rozbalit vše Re: Skript pro setrideni a vypis tabulky v shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
"jak ukladat postupne ty cisla sloupcu u parametru -i a -o do promennych"
for x in `IFS=, echo 4,3,5,2`; do echo $x; done x-ko preslo postupne kazdou z hodnot v zozname (ten si vytrhnes regexpom)
Ale toto nepotrebujes ukladat do nejakych poli (vari ste sa to ucili?!). Budes to mat v pomocnom subore.
Tie parametre su oddelene ciarkami, aby sa dali lahko predat cut-u (cut -f2,3...pamatas si? f ako 'Field')

"jak podle nich setridit"
To velmi v zadani nebolo, ale je to logicke...sort -k5,6 (k ako Kluc ;) bacha, tam je rozsah...pouzi radsej viacero sortov, v poradi od najmenej doleziteho)

"a nasledne vypsat skupiny ve vyse uvedenym formatovani"
To uz si zopakoval cele zadanie! Takze si s tym este vobec nepohol. Mohli by Vam to aspon ukazat, predtym, nez to chcu po Vas.

Mas tam chybu, za 'Rocnik 3' ma byt novy riadok.

Ked to napises, tak nam to sem posli!

A nezabudni, ze mas awk!

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.