【发布时间】:2017-10-25 09:30:23
【问题描述】:
我遇到了需要分析日志/文本文件中的数据的情况。有数百个文件,有时还有数万行数据。我使用 PowerShell 只是因为它在我的计算机上可用并且据我所知应该足够了。仅通过使用 Google 并在此处查找主题,我设法创建了一个脚本,该脚本将为一个特定标签解析多个文件并提取整行数据。
问题是我想从文件中提取多行不同的数据,主要是我要查找的实际数据和日期。如果我可以将数据提取到 Excel 文件中,那就太好了。现在它被提取到一个文本文件中,我只是剪切并粘贴到一个 Excel 中,然后将格式从文本更改为以空格分隔的列。
这是我正在查看的文本示例。
3I "MAC" "日期" := 2016, 8, 1 3I "MAC" "时间" := 3, 42, 56 15F "MAC" "ORGB" := -1.656704e-04, -1.878277e-04, -1.873876e-04, -1.659016e-04, -1.429739e-04, -1.786126e-04, -1.590039e-04 , -2.246118e-04, -1.951066e-04, -2.158172e-04, -1.526934e-04, -1.560605e-04, -1.856570e-04, -2.192611e-04, -1.747964e-04 15F "MAC" "ORGP" := -1.657223e-04, -1.878391e-04, -1.874067e-04, -1.659254e-04, -1.429638e-04, -1.786519e-04, -1.590114e-04 , -2.245719e-04, -1.950584e-04, -2.158372e-04, -1.526876e-04, -1.561122e-04, -1.855181e-04, -2.192713e-04, -1.748256e-04 15F "MAC" "OFF3" := -7.424393e-08, -1.599836e-07, 1.178269e-07, 3.231106e-07, -4.113245e-07, -4.851174e-07, 4.043978e-07, 3.279856e -07、6.228656e-07、1.257285e-07、1.290027e-07、-1.727165e-07、7.661874e-07、1.182343e-07、1.484092e-06 15F "MAC" "POST" := -1.897504e-06、1.557098e-05、-1.367209e-05、-8.604270e-06、-1.810627e-06、1.041628e-05、-6.231011e-06、1.683000 e-05、-1.059830e-05、8.980048e-06、-1.064588e-06、-7.914769e-06、-1.680518e-05、2.467031e-05、-7.863747e-06 15F "MAC" "OFF4" := -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00 , -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00 15F "MAC" "PRID" := -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00 , -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00, -1.000000e+00 15I "MAC" "SOPC" := -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 , -1这是我正在使用的脚本,它需要大约 30 分钟,最终消耗了我所有的 RAM,因为它可能不是做我想做的事情的最佳方式。
$log = Get-Content "C:\Users\derekru\Documents\WS FTP Pro\MACBAC\MACSENS_*.txt;1"
foreach ($line in $log) {
if ($line -like "*OFF3*") {
$line | Out-File -FilePath "D:\Work\MACSENS\Graph\STP09\160801-171022.txt" -Append
}
}
最终我希望能够将“日期”、“时间”、“ORGB”、“ORGP”和“OFF3”从多个文件中提取到 Excel 中,以便格式化
Date, Time, ORRGB, 15个数据点, ORGP, 15个数据点, OFF3, 15个数据点...在 Excel 的一个行上。
【问题讨论】:
标签: powershell