清理劣质CSV文件,进入SPLUNK

时间:2015-10-27 16:54:36

标签: csv powershell

我有一个假定的CSV文件(由旧的内部系统生成): -

  1. 在EXCEL中显示在一列(A1)中,或在NOTEPAD中显示为一行数据。
  2. 不包含逗号
  3. 每个数据字段之间都有可变数量的空格。
  4. 这是一个帮助你了解情况的例子。

    UserName UserEmail EnquiryCreated EnquirySubmitted

    A.nother anne.nother@mail.com 01/09/201512:00 01/09/201512:01

    因此,想要将这个大型数据文件的解析自动化为可读的CSV格式,我正在考虑使用POWERSHELL。基本上我需要用一个逗号替换任何有一个或大量水平空格的地方,并输出为CSV。我试图找到最有效/最优雅的方法,我对此提出了建议。

    所以理想的格式是: -

    A.nother,anne.nother @ mail.com,01/09/201512:00,01 / 09/201512:01,

    CSV文件由SPLUNK监控,因此将自动拉出。

    编辑 - Sam为了清晰起见,我已经完成了屏幕抓取,因为格式被#34; Stack overflow"改变了。

    enter image description here

1 个答案:

答案 0 :(得分:1)

这是替换的一种方式。首先,创建输出文件并添加标题。然后,用逗号替换空格(1或更多)并将它们添加到文件中。

Add-Content "C:\temp\output.csv" -Value "UserName,UserEmail,EnquiryCreated,EnquirySubmitted"
Get-Content "C:\temp\input.csv" | % { Add-Content $outputCsv -Value $($_ -replace "\s+", ",") }

我不清楚您是否需要PowerShell脚本来检测文件中的“一个或多个水平空格”。