/ / Wyszukaj wzór w perlu i wydrukuj, jeśli liczba jest większa niż pewna wartość - regex, perl

Wyszukaj wzór w perlu i wydrukuj, jeśli liczba jest większa niż pewna wartość - regex, perl

Mam wiele plików w katalogu dzienników. Musisz szukać ciągów takich jak xyz: i wydrukuj wiadomość, jeśli log zawiera liczbę większą niż 3000.

Example "xyz:40000/my"

Czy ktoś może podpowiedzieć, jak to osiągnąć, używając regEx w Perlu.

if(/xyz:/)
{
if(number next to xyz: is greater than 3000)
{
print "Oh my god";
}
}

Wiem, że to elementarne pytanie, ale jestem nowy perl regEx. Wszelkie wskazówki pomogłyby

Odpowiedzi:

3 dla odpowiedzi № 1

Możesz wypróbować ten fragment w skrypcie uruchomionym przy użyciu perl -n:

if (/^xyz:([0-9]+)/)
{
if ($1 > 3000)
{
print "Oh no!";
}
}

Możesz także wydrukować całe nieprawidłowe drukowanie linii $_ (Lub tylko print, domyślnie do bieżącego wiersza). Możesz nawet zaakceptować wzorzec do wyszukania w każdym wierszu w wierszu poleceń itp.