Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Inhalte aus Textdatei sortieren und bestimmte Werte nach csv schreiben

$
0
0

Guten Tag in die Runde,

ich versuche seit einigen Tagen mittels Shellscript Inhalte aus einer Datei zu lesen und diese dann in einer csv zu sortieren. Leider stellt mich schon das Einlesen vor einige Probleme. Die Dateien sind immer nach dem gleichen Muster aufgebaut, haben aber unterschiedlich viel Inhalt. Hier ein Beispiel:

TITLE:   Test EDL
FCM: NON-DROP FRAME
000  495      V     C       19:09:45:08 19:09:49:07 10:00:00:00 10:00:05:06
M2   495            018.8                19:09:45:08
* FROM CLIP NAME:  TATORTKKH0495.NEW.01
* SOURCE FILE: TATORTKKH0495
001  901      V     C       15:30:59:10 15:31:10:10 10:00:05:06 10:00:16:05
M2   901            025.0                15:30:59:10
* FROM CLIP NAME:  JEW0039U01.NEW.02
* SOURCE FILE: JEW0039U01
018  992      V     C       01:00:12:24 01:00:17:06 10:02:49:23 10:02:54:05
* FROM CLIP NAME:  67 (HIRTENGRUND MIT HEXENTURM, C. 1899. (#92 ON MAP) CREDIT SAMMLUNG MITTAG).JPG
* SOURCE FILE: 67 (HIRTENGRUND MIT HEXENTURM, C. 1899. (#92 ON MAP) CREDIT SAMMLUNG MITTAG).JPG
019  176      V     C       01:00:04:14 01:00:09:13 10:02:54:05 10:02:59:04
* FROM CLIP NAME:  IMG_0176.JPEG
* SOURCE FILE: IMG_0176.JPEG

Übertragen muss ich nur die Werte, die hier kursiv und unterstrichen sind. Mein Ansatz ist die Tatsache, dass die Zeilen mit den relevanten Inhalten immer gleich aufgebaut sind. Also entweder "V     C" beinhalten, oder mit "* FROM CLIP NAME:" bzw. "* SOURCE FILE:" beginnen. Die Werte nur für den ersten Block auszulesen, schaffe ich, scheitere hier aber schon daran diese so zu bearbeiten, dass der "Müll" am Anfang der Zeilen nicht mit übertragen wird:

$in = "\\Test EDL.edl"
$wert1 = (Get-Content $in | Select-String "V     C")[0]
$wert2 = (Get-Content $in | Select-String "FROM CLIP NAME:")[0]
$wert3 = (Get-Content $in | Select-String "SOURCE FILE:")[0]

$wert1
$wert2
$wert3

<# 
ausgelesen wird im Moment noch:

000  495      V     C        19:09:45:08 19:09:49:07 10:00:00:00 10:00:05:06
* FROM CLIP NAME:  TATORTKKH0495.NEW.01
* SOURCE FILE: TATORTKKH0495

sollte aber eigentlich so sein:

19:09:45:08 19:09:49:07 10:00:00:00 10:00:05:06
TATORTKKH0495.NEW.01
TATORTKKH0495
#>

Der erhöhte Schwierigkeitsgrad für mich wird aber vor allem eines werden: Wie muss ich das Script aufbauen um die Shell die Datei von Anfang bis Ende durchsuchen zu lassen und die Werte eines Blockes jeweils in die nächste Spalte einer Zeile einer Tabelle (also pro Block eine Zeile und pro Wert eine Spalte) schreiben zu lassen?

Ich wäre für jeden Denkanstoß und jede Hilfe dankbar.



Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>