ログファイルから行の一部を分離し、画面に出力します。

ログファイルから行の一部を分離し、画面に出力します。

5 分ごとにレコード数を更新するファイルがある場合、出力は次のようになります。

timestamp name of log file dataset record count 8600

timestamp name of log file dataset record count 8610

dataset record count XXXXその文字列だけを効果的に分離して画面に印刷するにはどうすればよいでしょうか?

答え1

1つの方法は、awk を使うことです:

awk 'match($0, "dataset record count [[:digit:]]+") { print substr($0, RSTART, RLENGTH) }' input

または、次の方法でパイプします:

command | awk 'match($0, "dataset record count [[:digit:]]+") { print substr($0, RSTART, RLENGTH) }'

または、以下を受け入れる grep を使用します-o:

grep -Eo 'dataset record count [[:digit:]]+' input

またはパイプ:

command | grep -Eo 'dataset record count [[:digit:]]+'

関連情報