Pomozte prosím - práce s datumy

Seznámení se základními principy operačního systému UNIX, převážně z uživatelského hlediska. Absolvent kurzu by měl být schopen napsat netriviální program v shellu.
Návštěvník

Pomozte prosím - práce s datumy

Příspěvek od Návštěvník »

Ahoj, prosím Vás ptřeboval bych poradit... jak se dají v shellu nejsnáze porovnat dva datumy, který z nich je starší... nemyslím jenom data vytvoření souborů, ale když mám někde datum jako string... je tady nějaká funkce, nebo si to musím naprogramovat sám?

A potom bych ještě potřeboval vytvořit datum "dnes + x dní" - dá se to nějak jednoduše?

Děkuji předem za pomoc...
Uživatelský avatar
R.U.R.
Matfyz(ák|ačka) level III
Příspěvky: 140
Registrován: 25. 5. 2008 18:46
Typ studia: Informatika Ph.D.
Bydliště: Beroun
Kontaktovat uživatele:

Re: Pomozte prosím - práce s datumy

Příspěvek od R.U.R. »

No, u prikazu, ktere hazi datum (jmenovite treba date, stat), je typicky moznost nastavit format vypisu na pocet sekund od 1.1.1970 - a to se pak da krasne porovnat, pricist a odecist cokoliv, zejo (sak vim ze den bude 60*60*24)...
Pokud mam datum v jinem formatu, tak bych si to prevedl na unixtime a tim bych to prevedl na predchozi pripad; nevim jestli je na to nejaka vychytavka, ale ja bych to delal pres regularni vyrazy a expr - naprikald za pouziti sedu a evalu.
Návštěvník

Re: Pomozte prosím - práce s datumy

Příspěvek od Návštěvník »

Jj díky, ale já právě nevím jak si můžu převíst nějaký datum co mám jako string na "unixtime" tak, abych to pak mohl zformátovat jako ten počet sekund...
Uživatelský avatar
R.U.R.
Matfyz(ák|ačka) level III
Příspěvky: 140
Registrován: 25. 5. 2008 18:46
Typ studia: Informatika Ph.D.
Bydliště: Beroun
Kontaktovat uživatele:

Re: Pomozte prosím - práce s datumy

Příspěvek od R.U.R. »

no tak už jsem to našel no :-)

Kód: Vybrat vše

date -d'datum' +%s
datum je US formát, tedy 'mm/dd/yyyy hh:ii:ss', '+' řiká "tady začíná specifikace formátu", %s znamená unixtime
Uživatelský avatar
R.U.R.
Matfyz(ák|ačka) level III
Příspěvky: 140
Registrován: 25. 5. 2008 18:46
Typ studia: Informatika Ph.D.
Bydliště: Beroun
Kontaktovat uživatele:

Re: Pomozte prosím - práce s datumy

Příspěvek od R.U.R. »

Jak říkal Calda na cvičení: "No jsem úplně blbej, tak si otevřu prohlížeč, gůgl, a česky tam napíšu co chci udělat..." Anebo mě napadne se podivat na man date (což mě nenapadlo no, ale je to tam ;-))
přeformátovat ten datum do toho US formátu už je jen jeden sed, to je asi jasný
Návštěvník

Re: Pomozte prosím - práce s datumy

Příspěvek od Návštěvník »

mozes sa pozriet aj na ls -l --full-time, to ti vyhodi taky format datumu ktory je mozne zotriedit pomocou sort -n (nemam overene, ale videl som a predpokladam ze funguje)
Uživatelský avatar
mhb
Matfyz(ák|ačka) level II
Příspěvky: 50
Registrován: 3. 2. 2008 03:38
Typ studia: Informatika Ph.D.
Kontaktovat uživatele:

Re: Pomozte prosím - práce s datumy

Příspěvek od mhb »

Asi Vas zklamu, panove, ale ani stat, ani date -d nejsou v Single UNIX Specification.
ls --full-time rovnez ne.
Uživatelský avatar
R.U.R.
Matfyz(ák|ačka) level III
Příspěvky: 140
Registrován: 25. 5. 2008 18:46
Typ studia: Informatika Ph.D.
Bydliště: Beroun
Kontaktovat uživatele:

Re: Pomozte prosím - práce s datumy

Příspěvek od R.U.R. »

Fajn, a jak teda? Ví někdo? Jsem nic jinýho nenašel... Pokud na to není nějaká std věc, tak asi nezbývá, než si napsat výpočet počtu dní mezi dvěma daty, jako jsme to dělali na prográmku... Anebo spatlat takovou divnou věc, která porovná data podle roku, pak podle měsíce a pak podle dne (a příp. ěště hodina minuta sekunda) a hodí výsledek. To by ještě šlo. Ale dělat takhle věci jako (datum + 1 den) je už podle mě hodně blbej nápad.
Uživatelský avatar
mhb
Matfyz(ák|ačka) level II
Příspěvky: 50
Registrován: 3. 2. 2008 03:38
Typ studia: Informatika Ph.D.
Kontaktovat uživatele:

Re: Pomozte prosím - práce s datumy

Příspěvek od mhb »

Já si myslím, že pokud použiješ date -d, a napíšeš, že víš, že to není ve specifikaci, ale že lepší nástroj ve specifikaci není a že jsi schopnej si napsat program který tohle obslouží, jen to není náplní téhle písemky... tak Tě nemůže vytrestat.

Alternativně se ho zeptejte během velkého kladení otázek před písemkou.
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: Pomozte prosím - práce s datumy

Příspěvek od hippies »

jak Forst rika.. pis to shora dolu, takze az dojde na tohle, pouzij volani nejake podprocedury a ta bude delat date -d a kdyz zbyde cas, tak muzes udelat druhou variantu, ktera bude odolnejsi vuci systemu;)
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
Odpovědět

Zpět na „SWI095 Úvod do UNIXu“