正規表現から単一のグループのみを抽出する

正規表現から単一のグループのみを抽出する

一緒にハッキングされたいくつかのログファイルから数値リストを取得するためにzgrepを使用しようとしています。だから私は以下を使用しています:

zgrep -ie "total time: .* ms" *

これは私が興味のある行全体を返します。私は番号をしたいだけです。 (合計時間以降、「ms」以前)追加の処理なしでこの情報を取得する方法はありますか?

ベストアンサー1

grepあなたがGNUgrepであり、探している数字が行の唯一の数字であると仮定している場合:

zgrep -ioEe '[0-9]+(\.[0-9]+)?' *

そうでない場合は、いつでもzgrep出力をフィルタリングできます。

zgrep -ie 'total time: .* ms' * | sed 's/.*total time: \(.*\) ms.*/\1/'

おすすめ記事