Мне нужно найти первое вхождение строкового шаблона «EPMAT-» в файле журнала и извлечь из него числовую часть. EPMAT- будет сопровождаться некоторым числом. Я хотел бы извлечь 20 из EPMAT-20 и распечатать.
Ex файл:
This is a test
test EPMAT-20 ......
....
EPMAT.33 test
end of test.
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
Сsed
:
sed -n '/EPMAT/{ s/.*EPMAT-//; s/[^0-9].*//; p; q; }' file