Usuwanie linni z pliku tektowefo które nie zawieraja podanej frazy.

0

Cześć,

potrzebuje programu, najlepiej napisanego w Javie, który po otrzymaniu pliku tekstowego (.txt/.log) przeleci go i zostawi tylko linnie które zawierają podane frazy.
Przykładowo mam 100K linni logów, program ma wziac ten plik i utworzyć jego kopie, ale pozostawić w niej tylko linijki które zawierają np "alamakota" "kotmaale" oraz "przykladowytxt"

Jezeli linia nie posiada jednej z podanych fraz - zostaje usunieta (a raczej nie zapisana do kopii pliku, oryginał zeby pozostał bez zmian)

Jak najlepiej to rozwiazać zeby było to w miare optymalne dla plikow nawet 500K linii? Rozumiem ze do samego matchowania wystarczy uzyc regexa (pattern/matcher). Do wczytania/zapisania kopii pliku FileInputStream(+Output)?

Pozdrawiam

1

cat input.log | grep pattern > output.log

0

Niestety to zwraca pusty plik.

0

grep domyślnie bierze pod uwagę wielkość znaków; oprócz tego powinno działać.
Pokaż przykładowy plik źródłowy oraz dokładnie linię poleceń.

0

okej, blad był przy przenoszeniu pliku do maszyny wirtualnej - po prostu logi byly nie pelne = nie wystepowala fraza = plik pusty...

kbz@ubuntu:~/Desktop/Pattern$ cat dumpState.log | grep 'PhoneApp|OCRRecognitionService' > output.log

i śmiga, w zyciu bym nie przypuszczał ze to moze byc takie proste. Dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1