0

我必须mbuffer把它的输出放到一个文件中。每个文件一行,其中 3 个示例可能是

summary:  0.0 KiByte in  0.3 sec - average of  0.0 B/s
summary:  0.0 KiByte in  12 h 24 min - average of  12.0 KiB/s
summary:  0.0 KiByte in  12 min - average of  12.0 MiB/s

我想以秒为单位提取时间,以 MB/s 为单位提取速度。

问题

是否有捷径可寻?因为我只能想到会给出很长的正则表达式的东西。

4

1 回答 1

2

/summary:.*?in\s*(?:(?<hours>[\d\.]+) h)?\s*(?:(?<minutes>[\d\.]+) min)?\s*(?:(?<seconds>[\d\.]+) sec)?.*?average of\s*(?<speed>[\d\.]+ [a-zA-Z]+\/s)/g

..将创建 4 个命名捕获组:

  • seconds(包含秒,例如。0.3
  • minutes(包含分钟,例如。24
  • hours(包含小时,例如。12
  • speed(附加 B/KiB/MiB 的平均速度,例如。12.0 KiB/s

演示

输出

在此处输入图像描述

于 2013-04-16T15:34:40.223 回答