hello
egy statisztikát kellene készítenem egy ilyen fájlból
user1;login;2009-03-26;10:30
user2;login;2009-03-26;11:00
user2;logoff;2009-03-26;12:20
user1;logoff;2009-03-26;12:00
valahogy így hogy hány alkalommal és mennyi ideig voltak bent
user1: 1 alkalom,1 óra 30 perc
user2: 1 alkalom,1 óra 20 perc
az hogy hány alkalommal az már meg van, de azt hogy mennyi ideig azt nem tudtam megcsinálni tudnátok segíteni?
- 1408 megtekintés
Hozzászólások
>>Itt mar belinkeltem egy prog.hu-s topicot, ahogy elmagyarazzak a megoldast. Mit nem ertesz?!
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
azt hogy nem nagyon vágom az awk-t és gondoltam tudnátok konkrétabban segíteni, mert ez az egyik kötprogom meg van még egy flash is és mind a kettõt ma éjfélig kell leadni, és eléggé szrul állok mind kettõbõl, ráadásul ez harmadjára felvett :(
- A hozzászóláshoz be kell jelentkezni
Szoval meg kene oldjuk neked?
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
hát ha megtudjátok az lenne a legjobb, csak ezt lehet inkább nem akartam írni :(
- A hozzászóláshoz be kell jelentkezni
5000 Ft-ért megoldom neked, de előre utalsz :P
--
Én TUDOM, hogy igazam van. És ha nincs is, akkor is NEKEM van igazam, mert én vagyok az Admin. Ennyi!
- A hozzászóláshoz be kell jelentkezni
a baj még az hogy nincs a kollégiumban, net, csak az egyetemi oldalakat lehet elérni, viszont mivel ssh-n keresztül a ravaszabbak tudtak netezni ezért sebesség korlátot csináltak, így amikor elakarnám menteni vgay megnyitni vagy bármit csinálni a kabinetes szerveren a fájllal akkor meghal, a net miatt , erre azért lenne szükség mert ott kell futni és nincs is linuxom hogy azon csinálgassam itthon szal be kéne jelentkezenm de az meg dög lassú
- A hozzászóláshoz be kell jelentkezni
Gondolom nem tegnaprol mara adtak a feladatot, lett volna idod linuxot telepiteni...
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
lett volna
- A hozzászóláshoz be kell jelentkezni
Ez van, vallalod a kovetkezmenyeket! ;^)
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Azert illik felkeszulni dolgokra, ha mar ilyen temat veszel fel, nem gondolod?
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
BEGIN { FS = ";" }
/^.+;login/ {
felhasznalok[$1]++;
split($3,a,"-");split($4,b,":");
lin[$1]=lin[$1]+mktime(a[1]" "a[2]" "a[3]" "b[1]" "b[2]" "b[3]"00");
}
/^.+;logoff/ {
split($3,a,"-");split($4,b,":");
lout[$1]=lout[$1]+mktime(a[1]" "a[2]" "a[3]" "b[1]" "b[2]" "b[3]"00");
}
END {
for (i in felhasznalok) {
t=lout[i]-lin[i];
m = int(t/3600);
s = int(t % 3600/60);
print i": "felhasznalok[i]" alkalom,"m" ora "s" perc";
}
}
osszedobtam egy kis scriptet ezen elindulhatsz
- A hozzászóláshoz be kell jelentkezni
nagggyon köszönöm szépen
- A hozzászóláshoz be kell jelentkezni
Az mktime fgv nincs definiálva, hibát dob. Mit kellene csinálnom, hogy működjön? Csak sima awk-t lehet használni.
Köszi szépen.
- A hozzászóláshoz be kell jelentkezni
http://sunsite.ualberta.ca/Documentation/Gnu/gawk-3.0.6/html_node/gawk_… betolod beginbe amik ezen az oldalon vannak.
- A hozzászóláshoz be kell jelentkezni
bemásoltam a begionbe az mktime fgv-t ami az oldalon van. azt dobta, hogy
awk: ./h749006.awk:3: BEGIN blocks must have an action part
awk: ./h749006.awk:9: function mktime(a, b, i, j, t, diff)
awk: ./h749006.awk:9: ^ syntax error
awk: ./h749006.awk:9: fatal: 6 is invalid as number of arguments for mktime
#2 BEGIN
#3 {
#4 FS = ";"
#5
#6 # mktime --- convert a date into seconds,
#7 # compensate for time zone
#8
#9 function mktime(str, res1, res2, a, b, i, j, t, diff)
tipp?
- A hozzászóláshoz be kell jelentkezni
function _tm_isleap(year, ret)
{
ret = (year % 4 == 0 && year % 100 != 0) ||
(year % 400 == 0)
return ret
}
function _tm_addup(a, total, yearsecs, daysecs,
hoursecs, i, j)
{
hoursecs = 60 * 60
daysecs = 24 * hoursecs
yearsecs = 365 * daysecs
total = (a[1] - 1970) * yearsecs
# extra day for leap years
for (i = 1970; i < a[1]; i++)
if (_tm_isleap(i))
total += daysecs
j = _tm_isleap(a[1])
for (i = 1; i < a[2]; i++)
total += _tm_months[j, i] * daysecs
total += (a[3] - 1) * daysecs
total += a[4] * hoursecs
total += a[5] * 60
total += a[6]
return total
}
function mktime(str, res1, res2, a, b, i, j, t, diff)
{
i = split(str, a, " ") # don't rely on FS
if (i != 6)
return -1
# force numeric
for (j in a)
a[j] += 0
# validate
if (a[1] < 1970 ||
a[2] < 1 || a[2] > 12 ||
a[3] < 1 || a[3] > 31 ||
a[4] < 0 || a[4] > 23 ||
a[5] < 0 || a[5] > 59 ||
a[6] < 0 || a[6] > 60 )
return -1
res1 = _tm_addup(a)
t = strftime("%Y %m %d %H %M %S", res1)
if (_tm_debug)
printf("(%s) -> (%s)\n", str, t) > "/dev/stderr"
split(t, b, " ")
res2 = _tm_addup(b)
diff = res1 - res2
if (_tm_debug)
printf("diff = %d seconds\n", diff) > "/dev/stderr"
res1 += diff
return res1
}
BEGIN {
FS = ";"
_tm_months[0,1] = _tm_months[1,1] = 31
_tm_months[0,2] = 28; _tm_months[1,2] = 29
_tm_months[0,3] = _tm_months[1,3] = 31
_tm_months[0,4] = _tm_months[1,4] = 30
_tm_months[0,5] = _tm_months[1,5] = 31
_tm_months[0,6] = _tm_months[1,6] = 30
_tm_months[0,7] = _tm_months[1,7] = 31
_tm_months[0,8] = _tm_months[1,8] = 31
_tm_months[0,9] = _tm_months[1,9] = 30
_tm_months[0,10] = _tm_months[1,10] = 31
_tm_months[0,11] = _tm_months[1,11] = 30
_tm_months[0,12] = _tm_months[1,12] = 31
}
/^.+;login/ {
felhasznalok[$1]++;
split($3,a,"-");split($4,b,":");
lin[$1]=lin[$1]+mktime(a[1]" "a[2]" "a[3]" "b[1]" "b[2]" "b[3]"00");
}
/^.+;logoff/ {
split($3,a,"-");split($4,b,":");
lout[$1]=lout[$1]+mktime(a[1]" "a[2]" "a[3]" "b[1]" "b[2]" "b[3]"00");
}
END {
for (i in felhasznalok) {
t=lout[i]-lin[i];
m = int(t/3600);
s = int(t % 3600/60);
print i": "felhasznalok[i]" alkalom,"m" ora "s" perc";
}
}
- A hozzászóláshoz be kell jelentkezni