jak grep dokładny wzór


0

Próbowałem kilku pomysłów grep / egrep z różnymi opcjami, ale żadna nie działała tutaj. Próbuję grep dokładnie dopasować wzór, którego szukam w dzienniku.

Na przykład chcę, aby grep był wyświetlany tylko wzorzec „ERROR”, a nie słowo „ERROR123”.

Mam dwa wzorce, aby sprawdzić błąd / wyjątek. Szukam rozwiązania, w którym mogę tylko grep, egrep, awk lub sed dokładnie dopasować.

Oto aktualizacja:

ERRCNT=`cat $LogFile | tail -c +$lastPosition | head -c +$difference | grep -qw "$EXPR1|$EXPR2"`
PATTERN=$ERRCNT 

if  [ -n "$ERRCNT" ]; then 

echo "$MSG : $PATTERN" 

exit 2;

else

echo "OK - NO ERROR CODES FOUND IN THE LOG"

exit 0;

fi;

Kiedy widzę wzór „Błąd / wyjątek”, muszę zostać powiadomiony. Ale kiedy mam wzór - wyjątek / błąd. rzuca również exit2. Potrzebuję go tylko w „Błędzie / wyjątku”.

Jakieś sugestie ?


Sugeruję wyjaśnienie pytania. ERROR123 nie pasuje do wzorca ERROR(ponieważ zawiera ERROR). Więc szukasz linie , które zawierają E, R, R, O, i R i nic więcej ? A może szukasz wystąpienia tego słowa ERROR ? Jak definiujesz słowo ? Czy musi być poprzedzony spacjami? Czy może być poprzedzony i / lub poprzedzony interpunkcją? Na koniec powiedz, jakiego systemu operacyjnego używasz.
G-Man,

G-Man, dzięki za szybki zwrot tego. Chcę być w stanie grepować tylko słowo - Błąd / wyjątek, nic więcej, to nie słowo „tailing” lub „head”. Tylko te mecze. Słowa mają spacje przed i na końcu. To jest Linux !!!
user324391,

Myślę, że musisz podać kilka przykładowych wierszy, a także twoje próby wyszukiwania / grep i pożądane wyniki. Grep może znaleźć wiersze zawierające dokładny ciąg lub całą linię ... ale nie mogę odgadnąć odpowiedzi
Xen2050

co powiesz na [[:space:]]ERROR[[:space:]]
stib

Dlaczego używasz opcji q/ „quiet”, grep -qwjeśli chcesz uchwycić wzór?
aff
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.