[bash]Usuwanie określonych datą linii

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
NoName_1990
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 28 lut 2007, 18:01
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86

[bash]Usuwanie określonych datą linii

Post 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?
Awatar użytkownika
leon1313
Zakręcona Traszka
Zakręcona Traszka
Posty: 668
Rejestracja: 02 sty 2006, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: KDE Plasma
Architektura: x86

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

Post autor: leon1313 »

PERL - wrzucać na stos i porównywać.
Czas wyciągniesz za pomocą /(\d+):.*/, jako $1
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości