在做数据性能统计的时候需要精确到ms级别,SecureCRT软件可以准确记录到时间戳至ms,方法如下:
Option--Session Options--Log File:
[%Y-%M-%D_%h:%m:%s.%t]
例如在每一行会添加如下时间信息:
2022-01-07_10:57:23.667
但是需要提取出时间信息:10:57:24.667
首先打开Excel的文件--选项--开发工具
然后打开开发工具VB,在代码区输入
Sub testRegexp()
Dim a, b, c
Dim regexp As Object
Dim d As String
Set regexp = CreateObject("vbscript.regexp")
With regexp
.Global = True
.IgnoreCase = True
.Pattern = ".* .{2} \d{8} (\d{18}|\d{17}[xX])"
End With
For Each a In Range("D2:D4")
Set b = regexp.Execute(a.Value)
Rem b.Count
If b.Count > 0 Then
For Each c In b
Rem SubMatches.Count
If c.SubMatches.Count > 0 Then
Rem vbCrLf
d = d + c.SubMatches(0) + vbCrLf
End If
Next c
End If
Worksheets("Sheet1").Cells(a.Row, a.Column + 1).Value = d
d = ""
Next a
End Sub
这里需要注意.Pattern和Range,一个是正则表达式,从数据中提取出想要的数据格式
.Pattern = ".* .{2} \d{8} (\d{18}|\d{17}[xX])"
一个是范围, 待提取数据的范围
For Each a In Range("D2:D4")
这里的WorkSheet就是应用正则表达式的sheet页面,这里的a比较重要,就是待提取数据所在列,也就是Range的列
Worksheets("Sheet1").Cells(a.Row, a.Column + 1).Value = d
这个正则表达式需要网络上自己学习一下。
首先把数据导入到excel表格中,先把日志文件用Notepad++处理一下,然后如下方式导入数据,这里主语分隔符号和固定宽度,视情况而选择。分隔符都是英文下的分割符号。
提取出的时间信息的单元格格式需要设置单元格格式为:hh:mm:ss.000,即10:57:24.667以及将其换算成数值的单元格格式为小数(2位)
然后使用公式如下:
=(MID(TEXT(D5,"hh:mm:ss.000"),1,2))*3600+(MID(TEXT(D5,"hh:mm:ss.000"),4,2))*60+(MID(TEXT(D4,"hh:mm:ss.000"),7,2))+(MID(TEXT(D4,"hh:mm:ss.000"),10,3))/1000
然后按下ctrl+鼠标到单元格右下角变为+号,下托复用格式即可。
更多推荐
Office---Excel操作技巧使用正则表达式
发布评论