Strona 1 z 1

Sortowanie według aktualnej godziny

: 09 czerwca 2008, 02:12
autor: hasanek
Witam.
Mam plik w którym są wypisane różne godziny, w wierszach np.:

06:34
07.25
14:38
23:12
01:34

Jak wyłuskać z tego godzinę, która będzie bezpośrednio mniejsza od aktualnej.
Np.: załóżmy, że jest teraz godzina. 15:30
więc w wyniku powinno zwrócić 14:38

Czekam na propozycje i z góry dziękuję za pomoc.

Pozdrawiam.

: 09 czerwca 2008, 02:27
autor: yantar
Na przyklad tak

Kod: Zaznacz cały

sort -n /sciezka_do_pliku | head -n1
To mozna na kilka sposobow, w zaleznosci do czego to ma byc.
Poczytaj

Kod: Zaznacz cały

man textutils
I pewnie jeszcze innymi narzedziami to da sie zrobic;]

ps.W sumie nie do konca zajarzylem, ze to ma uwzgledniac od aktualnej godziny. za duzo swietowania przy browarku. Ale ciesze sie, ze pomoglem ;]

: 09 czerwca 2008, 03:09
autor: hasanek
yantar pisze:Na przyklad tak

Kod: Zaznacz cały

sort -n /sciezka_do_pliku | head -n1
To mozna na kilka sposobow, w zaleznosci do czego to ma byc.
Poczytaj

Kod: Zaznacz cały

man textutils
I pewnie jeszcze innymi narzedziami to da sie zrobic]

Wielkie dzięki. Podsunąłeś mi rozwiązanie. Też próbowałem użyć sorta ale jakoś prędzej nie wpadłem że to może być takie proste.

Może wyjaśnię:
W pliku tekstowym, który przeszukuję zawarty jest program telewizyjny jednej stacji. Chciałem wyłuskać z tego dalszą część programu, od aktualnej godziny.
Dzięki Tobie wreszcie wpadłem na pomysł jak to zrobić.
Hmm.... może wkleję kodzik dla potomnych ;-) i oczywiście liczę na uwagi co można by usprawnić.

Kod: Zaznacz cały


plik=~tomek/etc/programtv/baza/TVP_Polonia-08062008.html
sort  $plik >~/tmp/sort.tmp

dl=$(cat $plik|wc -l)    #ilość lini pliku


for i in `cat ~/tmp/sort.tmp | awk '{print $1}'`
do
       if [ "$i" \> "$czas" ]; then
             break
       fi
done

for j in `cat $plik |awk '{print $1}'`
do
      if [ "$j" == "$i" ]; then
            break
      fi
x=$[x+1]
done

tail -$[dl-x+2] $plik >~/tmp/programtv.tmp  #te "+2" jest po to żeby uwzględnić                 aktualnie trwający program
Pozdrawiam