使用PowerShell将非结构化文本文件中的数据提取到CSV

时间:2018-01-31 15:58:53

标签: powershell

我正在尝试将域时间II windows slave PTP日志导出到Splunk。日志文件是非结构化的。我尝试使用splunk的正则表达式提取器来提取字段,但这将是一个不可靠的解决方案。

有没有办法使用PowerShell以CSV格式提取所需数据?

logformat

1 个答案:

答案 0 :(得分:0)

如果您可以编写将所需数据提取到一个或多个“捕获组”中的RegEx,则可以非常轻松地将结果导出到CSV。有点像:

$RegEx = "your regex here"
$FilePath = "path to file"

$PropertySelectors = @( 
    ${n="Field_1";e={$_.Groups[1].Value}},
    ${n="Field_2";e={$_.Groups[2].Value}},
    ${n="Field_3";e={$_.Groups[3].Value}}
    # etc.
    )

select-string -path $filePath -pattern $RegEx -allmatches |
    select-object -ExpandProperty Matches | 
    select-object $PropertySelectors |
    convertto-csv