web-dev-qa-db-ja.com

CSVフォーマットを自動「ドラッグアンドドロップ」BATファイルに変換するにはどうすればよいですか?

Avid Media Composerから生のEDLファイルを出力しています。これは基本的に、適切な列に再フォーマットする必要があるテキストであるため、受信者が簡単に消化できます。セキュリティ上の理由から、マシン私たちはインターネットに接続していないので、サードパーティのツールやネットのWebサイトを使用せずにこれを実現する方法を理解しようとしています。

メモ帳で開いたときのRaw.EDLファイルは次のようになります。

RAW EDL FILE

これは基本的に、タイムラインで使用されるカットの要約と、関連するイン/アウトのソースおよび宛先のタイムコードです。上記の例は、完全なEDLが最大1000のカットを持つことができるため、サイズが非常に小さいです(各番号付きの線はカットです)。

カンマ区切り記号を使用して、これを手動でフォーマットすることができました。カンマと引用符を追加してこれを実現したので、次のようになります。

FORMATTED FOR Excel

これをExcelにインポートしたときの最終結果は次のとおりです。

RESULT IN Excel

また、Get-Contentを使用してPowershellを使用して必要なデータを特定の行/列に解析するというアイデアを模索してきましたが、この分野の初心者なので、何がわからないのでしょうか。私がやっている:

$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文字の制限などで英数字記号になります。行の。 EDLのすべての行でこれをすすぎ、繰り返し処理し、CSVをコンパイルするには、Powershellが必要です。

私の質問は、 手動フォーマット のように、このEDLファイルをCSVに出力するにはどうすればよいですか? 「ドラッグアンドドロップ」のbatファイルまたは同様のワークフローでこれを可能にしたいと思います。 raw 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

この素晴らしいコミュニティからの助けや提案を事前に感謝します!

1
Myles
  • 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"
  • ラップアラウンドをチェック
  • 正規表現を確認してください
  • UNCHECK . matches newline
  • Replace all

説明:

^               # 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"

enter image description here

3
Toto

ソースが

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にも対応しており、Promptを介して実行できます。最後の勝利exeはここにあります(mlr.exe) https://github.com/johnkerl/miller/releases/tag/5.4.

0
aborruso