我有一个从多服务器收集的预处理日志文件列表。他们在CSV格式和日志文件的内容的格式为:如何使用Powershell返回文件名和文件中的匹配文本
日期,时间,值1,值2,值3
我想有从文件名中的信息整合单个文件日志文件(具有服务器名称)以及日志文件中的Value1超过特定值以便进一步分析时的所有日期和时间。换句话说,我希望预期的输出为:
文件名20111/10/01,12:00:00.256,2345,210,0 文件名称12011/10/05,13:45:36.321 ,2666,209,0 文件名称5,2011/10/09,09:08:02.111,2100,180,0 文件名20,2011/10/15,17:09:33.256,3019,109,0 ...
我试图用Powershell +正则表达式来提取信息。但是,我只能得到包含我想要的值和文件名或仅包含日期,时间和值1的行。 PowerShell脚本为:
select-string -path“C:\ Server \ Logs * .csv”-pattern“([0-9] {4}/[0-9] {1,2}/[ 0-9] {1,2}),([0-9] {2}:[0-9] {2}:[0-9] {2})[0-9] {3},( [2-9] [0-9] {3})“| select-object -property filename,linenumber,line | export-csv -path highload2.csv
select-string -path“C:\ Server \ Logs * .csv”-pattern“([0-9] {4}/[0-9] {1,2 }/[0-9] {1,2}),([0-9] {2}:[0-9] {2}:[0-9] {2})[0-9] {3- },([2-9] [0-9] {3})“| select-object -expand匹配|的foreach {$ .Groups [1] .value的,$ .Groups [2] .value的,$ _。组[3] .value的}
是否有一种方式来获得我需要的结果呢?
感谢,
,如果使用进口CSV正常,您可以设置日期部分的CSV作为DateTime类型,并将它们与-lt -gt等进行比较,这绝对是一种方式! –
谢谢,它是我想要的。 –