文字列パターンの最初の項目を見つけ、そのパターンから部分文字列を抽出します。

文字列パターンの最初の項目を見つけ、そのパターンから部分文字列を抽出します。

文字列パターン「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

関連情報