2016-07-29 45 views
-1

我正在處理要導出的文本文件,以便在數據庫中顯示並生成報告。使用PowerShell導出txt文件中的數據

此文本文件是通過解析跟蹤客戶在我工作的公司的機頂盒中調諧而創建的。每一行的結構是如下:

最後頻道調諧:

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"}]} -- 

最後頻道調諧和衝浪模式:

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源

-IP目的地

- 頻道調諧

Database Channel Tuned in CSV

我使用PowerShell自動執行此操作。我是PowerShell中的新成員。然後,我希望將這些信息轉換爲CSV文件。

有什麼想法?

問候。

+0

有過濾文本文件許多實施例和的powershell輸出到CSV。由於您剛接觸PowerShell,因此開始搜索這些內容並適應您的需求。 – wOxxOm

回答

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"}]} -- 

現在你可以很容易地在任何類型的文件格式,你想導出此!

+0

非常好。那麼,現在我有Data屬性,我想提取通道(例如:THC,QROESTRELLA,TFLMZN,NICK),並在同一個表中顯示通道屬性而不是數據屬性。我分享了一個圖像,它是「數據庫」。有可能的? –

+0

data屬性採用json格式,因此如果使用convertfrom-json cmdlet,則應該能夠獲取通道。如果這有助於您更接近解決問題,請不要忘記投票並標記爲答案。 – FoxDeploy

+0

謝謝。我找到了一種方法來部分提取該屬性。有了這個代碼,如何將這個「混合」到很多事件中?我把代碼,輸出和圖像的答案。 –

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

相關問題