Wydobycie wierszy z konkretnym ciągiem znaków

Użytkowanie arkusza kalkulacyjnego
ST43
Posty: 4
Rejestracja: śr lut 05, 2014 12:07 pm

Wydobycie wierszy z konkretnym ciągiem znaków

Post autor: ST43 »

Potrzebuję wydobyć z logu maszyny pewne cyklicznie występujące dane.
Log z grubsza wygląda tak:
16:01:15.186&&Timer - kontrola pracy...
16:01:15.186&&Odczytaj parametry przysłane...
16:01:15.309&&Timer - kontrola pracy...
16:01:15.319&&SAVE CONFIG FILE...
16:01:15.319&&SAVE SAFELY...

Jak spośród 20 tyś wierszy odseparować te konkretnie interesujące mnie ?
OpenOffice 2.4 na Windows eXPirience
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Wydobycie wierszy z konkretnym ciągiem znaków

Post autor: Jan_J »

Jeżeli kryterium "interesujące mnie" jest zmienne / formułowane doraźnie, to skuteczne może się okazać użycie prostego filtra albo autofiltra.
Albo zamiast arkusza kalkulacyjnego wybrać narzędzie typu "Log viewer". Z szybkiej kwerendy: https://superuser.com/questions/153/log ... on-windows (nie wiem, ile warte są te konkretne propozycje).
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2256
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Wydobycie wierszy z konkretnym ciągiem znaków

Post autor: Jermor »

Moja odpowiedź dotyczy programu Calc w wersji 6.2.8, więc jeśli rzeczywiście wciąż korzystasz z OpenOffice 2.4 to nie ręczę za rozwiązanie.
Przyjąłem, że Log zawiera także nazwę kolumny, w tym wypadku także "Log".
  1. Zdefiniuj obszar źródłowy, czyli cały obszar logu, łącznie z nagłówkiem, jako Bazę. "Dane -> Określ zakres"
  2. W drugim arkuszu (ja to zrobiłem w komórce A1) wpisz do komórki ten sam nagłówek, następnie zaznacz komórkę z tym wpisem oraz tę leżącą poniżej i nadaj im nazwę "Arkusz -> Nazwane zakresy -> Definiuj..." , wykorzystaj przy tym koniecznie "Opcje zakresu" zaznaczając w nich pozycję "Filtr" (ja w swoim przykładzie nazwałem go "Kryterium")
  3. W niższej komórce tego obszaru wpisz formułę:
    =".*"&A5&".*"
    W komórce A5 będziesz mógł wpisać fragment tekstu, który ma wyróżniać poszukiwane zdarzenie, np "tim" (od początkowych liter "Timer").
  4. Gdzieś obok nadaj komórce jeszcze jedna nazwę (ja to zrobiłem w C1, nadając nazwę "wyniki")
Wróć do danych źródłowych. Kliknij gdziekolwiek wewnątrz nich a następnie wykonaj:
"Dane -> Więcej filtrów -> Filtr zaawansowany" i wypełnij okno dialogowe.
191120125223_1.jpg
Po zatwierdzeniu w arkuszu drugim powinieneś zobaczyć listę zdarzeń pasujących do kryterium.
Zastosowanie nazwy bazodanowej, to co zrobiliśmy w pkt. 1 spowoduje, że możesz zmienić kryterium wyboru, kliknąć gdziekolwiek wewnątrz danych źródłowych i wywołać polecenia "Dane -> Odśwież zakres"
Dołączam mały plik.
Załączniki
st43.ods
(11.66 KiB) Pobrany 111 razy
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ