Найти 1-е вхождение шаблона строки и извлечь из него подстроку

Мне нужно найти первое вхождение строкового шаблона «EPMAT-» в файле журнала и извлечь из него числовую часть. EPMAT- будет сопровождаться некоторым числом. Я хотел бы извлечь 20 из EPMAT-20 и распечатать.

Ex файл:

This is a test  
test EPMAT-20 ......  
....  
EPMAT.33 test  
end of test.
-1
21.11.2018, 00:48
2 ответа
grep -m1 -oP '\bEPMAT-\K\d+' yourfile

-m1просто просмотрит первое совпадение во всем файле

-Pактивирует механизм регулярных выражений Perl.

-oпокажет только совпадающую часть

perl -lne 'print,exit for /\bEPMAT-\K\d+/g' yourfile

sed -ne '
   /\<EPMAT-[0-9][0-9]*/{
      s//&\
/
      s/.*-\([0-9]*\n\)/\1/
      P;q
   }
' yourfile
1
28.01.2020, 05:08

Сsed:

sed -n '/EPMAT/{ s/.*EPMAT-//; s/[^0-9].*//; p; q; }' file
1
28.01.2020, 05:08

Теги

Похожие вопросы