문자열 패턴의 첫 번째 항목을 찾아 해당 패턴에서 하위 문자열을 추출합니다.

문자열 패턴의 첫 번째 항목을 찾아 해당 패턴에서 하위 문자열을 추출합니다.

문자열 패턴 "EPMAT-"가 처음 나타나는 로그 파일을 검색하고 여기에서 숫자 부분을 추출해야 합니다. EPMAT- 뒤에는 몇 개의 숫자가 옵니다. EPMAT-20에서 20을 추출해서 인쇄하고 싶습니다.

이전 파일:

This is a test  
test EPMAT-20 ......  
....  
EPMAT.33 test  
end of test.

답변1

그리고 sed:

sed -n '/EPMAT/{ s/.*EPMAT-//; s/[^0-9].*//; p; q; }' file

답변2

grep -m1 -oP '\bEPMAT-\K\d+' yourfile

-m1전체 파일에서 첫 번째 일치 항목만 표시됩니다.

-PPerl 정규식 엔진이 활성화됩니다.

-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

관련 정보