我有一個從多服務器收集的預處理日誌文件列表。他們在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等進行比較,這絕對是一種方式! –
謝謝,它是我想要的。 –