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.