Strona 1 z 1

[bash]Usuwanie określonych datą linii

: 15 sie 2009, 11:48
autor: NoName_1990
Witam

mam plik tekstowy w formacie

Kod: Zaznacz cały

1250273109:jakis tekst
1250285358:jakis inny tekst
...
1250325757:tego jest naprawde duzo
Liczba to data dodania danej linii (date +%s)

I teraz chciałbym z tego pliku usunąć wszystkie linie, po których dodano następną linię w okresie nie większym niż 30s. Czyli na przykład:

Kod: Zaznacz cały

1250273109:jakis tekst
1250285138:poprzednia linia idzie do usuniecia bo 1250285138 - 1250273109 = 29s <= 30s
1250285148:poprzednia linia też jest usuwana bo 1250285148 - 1250285138 = 10s <= 30s
1250285194:poprzednia linia nie jest usuwana bo 1250285194 - 1250285148 = 46s >= 30s
1250285199:poprzednia linia  jest usuwana (5s)
1250285300:ta wyzej juz nie ta juz nie
1250285600:i tak dalej
...
1250325757:tego jest naprawde duzo
Czy dałoby się to zrobić sed'em / awk? Jeśli tak - w jaki sposób? Jeśli nie - jak inaczej?

Odp: [bash]Usuwanie określonych datą linii

: 15 sie 2009, 21:59
autor: leon1313
PERL - wrzucać na stos i porównywać.
Czas wyciągniesz za pomocą /(\d+):.*/, jako $1