» »

Domaca Naloga OS

Domaca Naloga OS

comgen ::

Pozdravljeni!

Rabim pomoc pri domaci nalogi, pri predmetu operacijski sistemi.

Napišite program v lupini, ki izpiše, kolikokrat ter koliko časa (skupno) so bili uporabniki v nekem času prijavljeni na sistemu. Čas podamo z dvema datumoma kot argumenta ukazne vrstice.
  • spremenil: comgen ()

b ::

Malo ti bom pomagal... če sta dva logina istočasno, se šteje, kot da je samo eden. Se pravi login danes od 01:00 do 02:00 in drugi login od 01:30 do 02:30 pomeni 1x login 1 uro in trideset minut :) Tale naloga je precej nedefinirano napisana in če ne pogledaš vhodnih podatkov in tega kakšen bi moral biti izhod, ne moreš pravilno rešit :)

Zero0ne ::

Povej natančno, s čim imaš probleme. Na Slo-Techu ne rešujemo domačih nalog.
uname -o

TitanX ::

jaz imam podoben problem... in sicer izpis dobim taksen:

bojank 100
bojank 166
borutb 48
borutb 227
borutb 27714
borutb 27773
borutb 28189
lukas 59
lukas 118
peterp 182
peterp 1542
peterp 2561


kako bi lahko to ce dam preko pipe naprej izloco samo zadnje vrstice od imen? tako da bi dobil to:
bojank 166
borutb 28189
lukas 118
peterp 2561


zgornji problem sem reso z AWK ukazom, ampak me vseeno zanima alternativa kako bi se dalo to rest se? probal sem neka z associative arrays ampak je to kar mi je ratalo naredit...torej nekak mi ni hotlo zmetat isto ime pod isti index...

ce ima kdo kaksen predlog hint mogoce example se priporocam

lp

Gandalfar ::

Brez da pokazate svojo kodo ne bo slo.

TitanX ::

zdej zaenkrat, bi rad obdrzal kodo kot skrivnost in jo lahko pokazem jutri...predstavlajte si da:

while read line; do
#tukaj notri se zgodi koda, ki prikaze zgoraj omenjeni prikaz!
#bojank 100
#bojank 166
#borutb 48
#borutb 227
#borutb 27714
#borutb 27773
#borutb 28189
#lukas 59
#lukas 118
#peterp 182
#peterp 1542
#peterp 2561

done | while read line; do
#tukaj bi rad tiste stolpce/vrstice ki jih preko pipe posljem naprej obdelal da bi mi samo najvecje #minute(drugi stolpec) vzelo in jih izpisalo z echo $line
done

lp

b ::

To kar ti delaš, ni OK. Najprej moraš vse seje istega uporabnika, ki se prekrivajo, združit skupaj. Brez tega ne boš dobil pravega rezultata.

TitanX ::

recimo da sem to ze naredil in da je tisto rezultat ki je skoraj ze na koncu in imam ime uporabnika in ZE zracunane minute? edini problem je to ker mi echo-a se vmesne ki jih potem ne znam izlocit ven...lepo prosim ce mi svetujete kaksno resitev za tisti zgoraj opisan problem(v mojem prejsnem postu)

drugace pa kot sem ze rekel sem napisal program ki deluje 100% in je dokaj hiter, ampak me zanima kako zgledajo se mogoce kaksne druge stvari ki naredijo isto

b ::

Namesto izpisovanja shrani vrednost v hash (associative array).

declare -A userji
${userji[$user]}=xxx

for user in ${!userji[*]}: do
echo "$user ${userji[$user]}
done

Sam ti manjka še število loginov... Kako boš to tukaj rešil pa nimam neke pametne ideje.

rdecakapica ::

Yo
Zakaj se men spremenljivka user spremeni v integer?

Zgodovina sprememb…

b ::

v bournovem shellu so vse spremenljivke stringi. Ne more se ti spremenit v int, ker to ne obstaja :)

Pri uporabi test (oz. [) pa lahko z izbiro operatorja vplivaš na to, kako se vrednost spremenljivke interpretira. -eq, -ne, -lt, -gt,.... primerjajo vrednosti kot integer, =, !=, ... pa kot string.

Zgodovina sprememb…

  • spremenilo: b ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Microsoftov giveaway knjig

Oddelek: Programiranje
162486 (1324) OvCa77
»

bash skripta ki bere txt

Oddelek: Programiranje
81042 (772) Mike0
»

[bash] štetje vrstic

Oddelek: Programiranje
12774 (671) Brane2
»

Regexp, grep, awk problem?

Oddelek: Programiranje
251614 (1336) Brane2
»

Skripte (strani: 1 2 )

Oddelek: Programiranje
508324 (6187) Microsoft

Več podobnih tem