使用PowerShell在txt文件中导出数据

时间:2016-07-29 14:59:26

标签: csv powershell

我正在处理一个文本文件,该文件将被导出以显示在数据库中并生成报告。

此文本文件是通过解析客户在我工作的公司的机顶盒中调整的内容创建的。每行的结构如下:

最后一个频道调整:

2016-05-10 22:30:19.282417 ; 10.193.115.63 ; 148.240.175.37 ;Data-- {"preferences":[{"key":"tv.mirada.iptv.navi.lastChannelTuned","value":"THC","basis":"DEVICE"}]} --

最后一个频道和最后一个频道:

2016-05-10 22:30:19.366016 ; 10.25.60.54 ; 148.240.175.37 ;Data-- {"preferences":[{"key":"tv.mirada.iptv.navi.lastVolume","value":12,"basis":"DEVICE"},{"key":"tv.mirada.iptv.navi.lastChannelTuned","value":"QROESTRELLA","basis":"DEVICE"}]} --

Last Channel Tuned and Surf Mode:

2016-05-10 22:30:19.953626 ; 10.85.156.3 ; 148.240.175.37 ;Data-- {"preferences":[{"key":"tv.mirada.iptv.navi.lastChannelTuned","value":"TFLMZN","basis":"DEVICE"},{"key":"tv.mirada.iptv.navi.surfMode","value":"ALL","basis":"DEVICE"}]} --

最后一个频道已调整,最后一个音量和上传模式:

2016-05-10 22:30:48.651843 ; 10.193.158.74 ; 148.240.175.37 ;Data-- {"preferences":[{"key":"tv.mirada.iptv.navi.lastVolume","value":16,"basis":"DEVICE"},{"key":"tv.mirada.iptv.navi.lastChannelTuned","value":"NICK","basis":"DEVICE"},{"key":"tv.mirada.iptv.navi.surfMode","value":"ALL","basis":"DEVICE"}]} ––

我想在“数据库”中显示这些数据,其中包含下一个“属性”:

- 日期

-IP source

-IP destination

-Channel Tuned

Database Channel Tuned in CSV

我使用PowerShell自动执行此操作。我是PowerShell的新手。然后,我希望将这些信息转换为CSV文件。

有什么想法吗?

问候。

2 个答案:

答案 0 :(得分:0)

您的数据采用分号分隔格式。这意味着我们可以使用PowerShell的ConvertFrom-CSV cmdlet为我们解析数据:)

我将您的一条记录存储为变量$e,以便进行概念验证。

$e = '2016-05-10 22:30:19.282417 ; 10.193.115.63 ; 148.240.175.37 ;Data-- {"preferences":[{"key":"tv.mirada.iptv.navi.lastChannelTuned","value":"THC","basis":"DEVICE"}]} --'
$e | ConvertFrom-Csv -Header 'Date','SourceIP','DestIP','Data' -Delimiter ';'

和输出

Date                        SourceIP       DestIP          Data                                                                                                     
----                        --------       ------          ----                                                                                                     
2016-05-10 22:30:19.282417  10.193.115.63  148.240.175.37  Data-- {"preferences":[{"key":"tv.mirada.iptv.navi.lastChannelTuned","value":"THC","basis":"DEVICE"}]} --

现在您可以轻松地以任何您喜欢的文件格式导出它!

答案 1 :(得分:0)

代码:

Clear-Host
$Input = @"

{
"preferences": [
{ "key":"tv.mirada.iptv.navi.lastChannelTuned" , "value":"THC" , "basis":"DEVICE" }
  ]
}

"@

$Victim = $Input | ConvertFrom-JSON
$Victim.preferences | Format-Table value -AutoSize

输出:

value
-----
THC

图片:Events