Próbuję zwrócić pierwsze wystąpienie wielu ciągów, tzn. Chcę wybrać wiersze z poniższego tekstu, w którym występuje pierwsze wystąpienie 1259, 3009 i 1589.Konieczne grep dla pierwszych wystąpień wielu ciągów znaków
ADWN 1259 11:00 B23
ADWN 3009 12:00 B19
DDWN 723 11:30 B04
ADWN 1589 14:20 B12
ADWN 1259 11:10 B23
DDWN 2534 13:00 B16
ADWN 3009 11:50 B14
To daje mi wszystkie mecze:
grep '1259\|3009\|1589' somelog.log
i to daje mi tylko pierwszy mecz
grep -m 1 '1259\|3009\|1589' somelog.log
chcę wrócić następujące:
ADWN 1259 11:00 B23
ADWN 3009 12:00 B19
ADWN 1589 14:20 B12
I myślę, że tworzenie pliku z wymaganiem uired wartości, a następnie zapętlenie pliku, przekazanie każdego numeru osobno do polecenia grep da mi to, czego szukam, ale nie znalazłem tego przykładu. Czy istnieje proste rozwiązanie tego problemu, czy pętla jest najlepszym sposobem na poradzenie sobie z tym problemem, czy ten przykład został już odebrany w innym miejscu?
Dzięki z góry za swoje pomysły i suggestions--
Clyde
Steve - dzięki, że robi to, o co prosiłem, zwraca pierwsze wystąpienie każdej wartości. Mam kilka do zrobienia w awk, i rozumiem dokładnie, co robi kod –
Mogę dodać szybkie wyjaśnienie, jeśli chcesz. Trzymaj się ... – Steve
Miło, doceniam wyjaśnienie - niektóre z tych rzeczy mogą być dość nieprzejrzyste! Z pewnością będę w stanie to wykorzystać, dzięki jeszcze raz! –