1

Я вывожу необработанные EDL-файлы из Avid Media Composer, которые по сути являются просто текстом, который необходимо переформатировать в соответствующие столбцы, чтобы его было легко переварить для получающего его. Из соображений безопасности на используемых нами компьютерах нет подключения к Интернету, поэтому я пытаюсь понять, как этого добиться без использования сторонних инструментов или веб-сайтов в сети.

Сырье.Файл EDL при открытии в блокноте выглядит так:

RAW EDL ФАЙЛ

В основном это просто сводка срезов, используемых на временной шкале, и соответствующие временные коды источника и места назначения. Приведенный выше пример очень мал по размеру, так как полный EDL может иметь до 1000 срезов (каждая пронумерованная строка является срезом).

Мне удалось отформатировать это вручную с использованием запятых. Я добился этого, добавив запятые и кавычки, чтобы это выглядело так:

Отформатирован для EXCEL

Конечный результат при импорте в Excel такой:

РЕЗУЛЬТАТ В EXCEL

Я также пытался исследовать идею использования Powershell с помощью Get-Content чтобы попытаться проанализировать нужные мне данные в определенные строки / столбцы, но я полный новичок в этой области, поэтому я не уверен, что я я делаю:

$Content = Get-Content "C:\TEST EDIT DECISION LIST.EDL"
$Content | Foreach {


If ($_ -match '[0-9]{1,6}$') 

Так что мне удалось заставить Get-Content прочитать файл EDL, и текст внутри был восстановлен нормально. Затем я попытался применить оператор match чтобы он идентифицировал 6-значное число (000001), и цель состоит в том, чтобы выяснить, как отправить его в столбец 1, строку 1 (но он не хочет запускаться). Затем мне нужно, чтобы оператор идентифицировал следующую запись (GUIDE_VO), которая была бы буквенно-цифровой символьной с максимальным ограничением в 32 символа и т.д., Чтобы придерживаться форматирования, которое я создал вручную для остальной части строки. Мне понадобится Powershell, чтобы прополоскать и повторить процесс через каждую строку в EDL и составить для меня CSV.

Мой вопрос: как мне получить этот файл EDL для вывода в CSV согласно ручному форматированию, которое я сделал? Я хотел бы сделать это возможным с помощью файла "перетаскивания" или аналогичного рабочего процесса. Записи, которые появляются в необработанном edl , всегда находятся в этом определенном порядке, только имена клипов и исходные файлы различаются по тому, что они говорят по всем данным. Номера записей также постепенно увеличиваются с каждой новой строкой данных.

Это необработанный текст из самого файла EDL:

TITLE:   Untitled Sequence.01
000001  GUIDE_VO                         A     C        12:36:54:21 12:37:06:19 01:00:00:00 01:00:11:23 
*FROM CLIP NAME:  SFX CLIP 1 
*SOURCE FILE: GUIDE VO
000002  HORROR.COPY.01.MP3               A     C        01:00:00:00 01:00:22:10 01:00:11:23 01:00:34:08 
*FROM CLIP NAME:  SFX CLIP 2 
*SOURCE FILE: HORROR.COPY.01.MP3
000003  93_HORROR_DRONE.MP3              A     C        01:00:04:15 01:00:08:08 01:00:34:08 01:00:38:01 
*FROM CLIP NAME:  SFX CLIP 3 
*SOURCE FILE: 93 HORROR DRONE.MP3

Большое спасибо заранее за любую помощь или предложения от этого удивительного сообщества!

2 ответа2

3
  • Ctrl+H
  • Найти что: ^(\S+)\h+(\S+)\h+(\S+)\h+(\S+)\h+(\S+)\h+(\S+)\h+(\S+)\h+(\S+)\h+\R\*FROM CLIP NAME:\h*(.+?)\h*\R.+
  • Заменить на: $1,$2,$4,$3,$5,$6,$7,$8,"$9"
  • проверить обернуть
  • проверьте регулярное выражение
  • ПРОВЕРИТЬ . matches newline
  • Заменить все

Объяснение:

^               # beginning of line
    (\S+)\h+    # group 1, 1 or more non spaces, then 1 or more horizontal spaces
    (\S+)\h+    # group 2, idem
    ...         # idem until
    (\S+)\h+    # group 8
    \R          # any kind of linebreak
    \*          # asterisk
    FROM CLIP NAME:\h*  # literally FROM CLIP NAME: followed by 0 or more horizontal spaces
    (.+?)       # group 9, 1 or more any character but newline, not greeedy
    \h*         # 0 or more horizontal spaces
    \R          # any kind of linebreak
    .+          # 1 or more any character but newline

Замена:

$1,                 # content of group 1 plus a comma
$2,                 # content of group 2 plus a comma
$4,$3,$5,$6,$7,$8,  # idem
"$9"                # content of group 9 surounded by double quote

Результат для данного примера:

TITLE:   Untitled Sequence.01
000001,GUIDE_VO,C,A,12:36:54:21,12:37:06:19,01:00:00:00,01:00:11:23,"SFX CLIP 1"
000002,HORROR.COPY.01.MP3,C,A,01:00:00:00,01:00:22:10,01:00:11:23,01:00:34:08,"SFX CLIP 2"
000003,93_HORROR_DRONE.MP3,C,A,01:00:04:15,01:00:08:08,01:00:34:08,01:00:38:01,"SFX CLIP 3"

0

если ваш источник

000001  GUIDE_VO                         A     C        12:36:54:21 12:37:06:19 01:00:00:00 01:00:11:23
*FROM CLIP NAME:  SFX CLIP 1
*SOURCE FILE: GUIDE VO
000002  HORROR.COPY.01.MP3               A     C        01:00:00:00 01:00:22:10 01:00:11:23 01:00:34:08
*FROM CLIP NAME:  SFX CLIP 2
*SOURCE FILE: HORROR.COPY.01.MP3
000003  93_HORROR_DRONE.MP3              A     C        01:00:04:15 01:00:08:08 01:00:34:08 01:00:38:01
*FROM CLIP NAME:  SFX CLIP 3
*SOURCE FILE: 93 HORROR DRONE.MP3

ты можешь подать заявку

mlr --skip-comments-with "*" --inidx --ifs ' ' --ocsv --repifs cat inputFile.txt

и имеют

1,2,3,4,5,6,7,8
000001,GUIDE_VO,A,C,12:36:54:21,12:37:06:19,01:00:00:00,01:00:11:23
000002,HORROR.COPY.01.MP3,A,C,01:00:00:00,01:00:22:10,01:00:11:23,01:00:34:08
000003,93_HORROR_DRONE.MP3,A,C,01:00:04:15,01:00:08:08,01:00:34:08,01:00:38:01

mlr - это утилита с открытым исходным кодом, также для Windows, и вы можете запустить ее через приглашение. Последний win exe находится здесь (mlr.exe) https://github.com/johnkerl/miller/releases/tag/5.4.0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .