Próbuję wyszukać w pliku dziennika zarejestrowane działania, które nie zostały zakończone. Na przykład loguję „Aktywność początkowa dla ID 1234 ...”, a jeśli się powiedzie, w następnym wierszu będzie „Aktywność 1234 zakończona”.
Próbuję uzyskać wiersze „Początek ...”, po których NIE następują odpowiadające im wiersze „Ukończone”.
Przykładowy plik dziennika
Starting activity for ID 1234
ID 1234 completed successfully
Starting activity for ID 3423
ID 3423 completed successfully
Starting activity for ID 9876
ID 9876 completed successfully
Starting activity for ID 99889
ID 99889 completed successfully
Starting activity for ID 10011
ID 10011 completed successfully
Starting activity for ID 33367
Starting activity for ID 936819
ID 936819 completed successfully
W tym przykładzie szukałbym danych wyjściowych:
Starting activity for ID 33367
... ponieważ nie następuje po nim wiersz „ukończony”.
Próbowałem robić to z grep
a awk
, ale nie miał wiele sukcesów. Zakładam, że można to zrobić za pomocą jednego z tych narzędzi, ale moje grep
i awk
kotlety nie są zaawansowane.
Patrząc na szybkie i niezawodne grep
lub awk
wzoru dać wyniki muszę tutaj.