2016-07-29 10 views
-1

Ich arbeite in einer Textdatei, die exportiert wird, um in einer Datenbank anzuzeigen und Berichte zu generieren.Exportieren von Daten in eine TXT-Datei mit PowerShell

Diese Textdatei wurde erstellt, indem ein Trace analysiert wird, was die Kunden in den Set-Top-Boxen einer Firma einstellen, in der ich arbeite. Die Struktur jeder Zeile unter:

Last-Kanal Tuned:

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

Last-Kanal Tuned und letzte Band:

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-Kanal Tuned und Surf-Modus:

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

Letzter Kanal, Letzte Lautstärke und Surf-Modus:

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

ich diese Daten in einer „Datenbank“ zeigen möchte, die die nächste enthält „Attribut“:

-Datum

-IP Quelle

-IP Ziel

- Kanalabgestimmt

Database Channel Tuned in CSV

Ich verwende PowerShell, um dies automatisch zu tun. Ich bin neu in PowerShell. Dann möchte ich diese Informationen in eine CSV-Datei umgewandelt.

Irgendeine Idee?

Grüße.

+0

Es gibt viele Beispiele von Filtertextdateien und in Powershell CSV ausgibt. Da Sie neu bei Powershell sind, beginnen Sie mit der Suche nach diesen und passen Sie sich an Ihre Bedürfnisse an. – wOxxOm

Antwort

0

Ihre Daten sind im Semikolon getrennt. Das heißt, wir können PowerShell's ConvertFrom-CSV Cmdlet verwenden, um die Daten für uns zu analysieren :)

Ich habe einen Ihrer Datensätze als die Variable $e für einen Proof of Concept gespeichert. in jeder Art von Dateiformat

$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 ';' 

und der Ausgang

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

Jetzt können Sie leicht diese exportieren Sie möchten!

+0

Sehr gut. Nun, jetzt habe ich das Data-Attribut, ich möchte den Kanal extrahieren (zum Beispiel: THC, QROESTRELLA, TFLMZN, NICK) und das Channel-Attribut anstelle des Daten-Attributs in derselben Tabelle anzeigen.Ich habe ein Bild geteilt, wo es die "Datenbank" ist. Es ist möglich? –

+0

Die Eigenschaft "data" hat das Format "json". Wenn Sie also das Cmdlet "convertfrom-json" verwenden, sollten Sie in der Lage sein, den Kanal zu entfernen. Vergessen Sie nicht zu wählen und als Antwort zu markieren, wenn Sie dadurch dem Problem näher kommen. – FoxDeploy

+0

Danke. Ich habe einen Weg gefunden, diese Eigenschaft teilweise zu extrahieren. Wie kann man diesen Code mit vielen Events "mischen"? Ich gebe eine Antwort mit dem Code, der Ausgabe und dem Bild. –

0

Code:

Clear-Host 
$Input = @" 

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

"@ 

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

Ausgang:

value 
----- 
THC 

Image: Events

Verwandte Themen