使ったことがないのでイチからの勉強でしたが、我流ですが適当にLinuxのsedコマンドを使ってテキストファイルの整形をしてみました。

ブログをお訪ねくださり、 🔍このブログ内検索
   ありがとうございます。kent
 

 

今朝の血圧は異常とまではいかないですが少し高めでした、朝食は正月以来の餅にしました下矢印砂糖醤油には先日兄と寄った「高倉町コーヒー」店で(ブラックコーヒーで飲むので余るというか不要)もらってきたラカントを砂糖代わりに使用。

使ったラカント下矢印

餅がなかなか減らないので頑張って3個にしました下矢印賞味期限が気になったので見たら8月までよかったから余裕音譜

kentラーメンかうどんにでも入れようかなぁ

 

以前に音声合成の作成→動画編集をした時に作ったテキストファイルが「edl」という形式に保存できます下矢印edlファイルは、画像ファイルや音声合成した(WAVやMP3ファイルの)ナレーションの位置や長さ、ファイル名などが記述してあるテキストファイルです。(使い方は違いますが字幕用ファイル「srt」に流用できそうな記述部分があります)

ですがYoutubeの字幕への登録は、ファイル内容が違う形式なので音声合成した時の元テキストファイル内容を手動で1ファイルづつ時刻指定しながらコピペするしかなかった。(字幕ファイル「srt」があれば簡単に字幕登録出来ます)

 

字幕ファイル形式の具体例下矢印この形式だとYoutubeに直接アップロードできると思います。kent実際にはやったことないんで自信ない!

 1
00:00:06,000 --> 00:00:07,000
2015年夏に発売のノートパソコン「LenovoFlex3」を中古で去年買いました。
2
00:00:07,280 --> 00:00:15,270
省電力ですが、低スペックなノートパソコンなので、MXリナックスを使って、ファイルサーバーにしてみました。
3
00:00:16,270 --> 00:00:27,030
薄型でコンパクトな上、冷却用のファンが無いので、24時間つけていても気になりませんし、停電になってもバッテリーで駆動するので安心です。

そこで「edl」ファイルからLinuxの「sed」コマンドでファイル整形して字幕形式である「srt」形式に近いカタチになるようにしてみた。kent字幕を挿入する時間指定は流用できるので今までのようにYoutubeにアップロードする画面上で時間をかけて時間指定する必要がなくなるのは助かる。

 

sedとは:

Linuxにおける「sed」は「Stream Editor」という英語の略であり、指定したファイルや文字列をコマンドに従って処理し、標準出力へ出力します。(基本的にファイルを指定して操作するのですが、省略した場合は、標準入力の文字列を処理します。 sedコマンドでは、パイプやリダイレクトを使用することもできます。)

 

出来れば完全な形式になるようにしたかったけど僕の力量不足と動画編集する時には一定の制限(音声トラックを固定するなど)を付けたくないのである程度整形して手動修正でsrt形式に完成させればいいかと思って中途半端な整形だけど次回は下矢印これを少し改良して使ってみようと思います。kent自分の覚書なので読み飛ばしてください。

テストしたsedコマンド
#!/bin/sh
sed -e 's/_____ A     C        / --> /' test.edl> test.srt
sed -e 's/* FROM CLIP NAME: //' test.srt> test2.srt
sed -e 's/ === playlist//' test2.srt> test3.srt
sed -e 's/ === //' test3.srt> test4.srt
sed -e 's/\(...\).................................\(..........\)/\1 \2/' test5.srt> test6.srt
sed -e 's/..._/ /' test6.srt> test7.srt


初めて今日作ったので、テストしながらの物で見にくいし効率悪い指定の仕方ですぅ、一度に置換出来るのが多いからもっと簡単になるはずぅ〜今後は、もっと勉強・改良して.shファイル化したいなと思っています。
補足説明
#sed -e 's/パターンA\(切り出し対象パターン\)パターンB/\1/'
#→ 文字列を正規表現化し、切り出す部分をエスケープした () (小括弧) で囲む。

#全体のパターン (パターンA+対象パターン+パターンB) に一致した文字列のうち、括弧で囲んだ対象パターンに一致する部分を、\1 を使用することで切り出すことができる。

#また、括弧で囲む部分を増やすことで切り出す文字列を複数指定可能で、1番目の括弧は \1、2番目の括弧は \2 といったように括弧の順番に対応した番号を指定して切り出す。

#なお、切り出し対象を指定する括弧は \( \) のようにエスケープする必要がある。

#$ echo "ABC123DEF456" | sed -e 's/...\(...\).*/\1/'
#123
#$ echo "ABC123DEF456" | sed -e 's/...\(...\)...\(...\)/\1 \2/'
#123 456
#$ echo "ABC123DEF456" | sed -e 's/...\(...\)/\1 /'
#123 DEF456
#. (ドット)は任意の一文字を表すので ... は任意の 3文字を表す。 
元のファイル
  === playlist0 === 

001  090af1d6 AA/V  C        00:00:00:00 00:03:45:15 00:00:00:00 00:03:45:15
* FROM CLIP NAME: 090af1d6bcf3ef81607b4b3906c9d1e2.mp4

 === playlist1 === 

001  001_____ A     C        00:00:00:00 00:00:03:24 00:00:03:03 00:00:06:27
* FROM CLIP NAME: 001_剣崎雌雄(ノーマル)_昨日、兄からワイヤ….wav
002  002_____ A     C        00:00:00:00 00:00:03:12 00:00:11:07 00:00:14:19
* FROM CLIP NAME: 002_剣崎雌雄(ノーマル)_これがパソコン側に….wav
003  003_____ A     C        00:00:00:00 00:00:06:12 00:00:24:27 00:00:31:09
* FROM CLIP NAME: 003_剣崎雌雄(ノーマル)_トラックボール付き….wav
004  004_____ A     C        00:00:00:00 00:00:07:17 00:00:36:27 00:00:44:14
* FROM CLIP NAME: 004_剣崎雌雄(ノーマル)_これは常用している….wav
005  005_____ A     C        00:00:00:00 00:00:06:06 00:00:49:18 00:00:55:24
* FROM CLIP NAME: 005_剣崎雌雄(ノーマル)_ま、内臓のトラック….wav
006  006_____ A     C        00:00:00:00 00:00:08:09 00:00:57:02 00:01:05:11
* FROM CLIP NAME: 006_剣崎雌雄(ノーマル)_使用電池です、今使….wav
007  007_____ A     C        00:00:00:00 00:00:04:28 00:01:09:05 00:01:14:03
* FROM CLIP NAME: 007_剣崎雌雄(ノーマル)_ところが、今回のキ….wav
008  008_____ A     C        00:00:00:00 00:00:05:05 00:01:19:18 00:01:24:23
* FROM CLIP NAME: 008_剣崎雌雄(ノーマル)_電池が倍なので、単….wav
009  009_____ A     C        00:00:00:00 00:00:06:22 00:01:29:27 00:01:36:19
* FROM CLIP NAME: 009_剣崎雌雄(ノーマル)_今までは、電池切れ….wav
010  010_____ A     C        00:00:00:00 00:00:07:25 00:01:38:16 00:01:46:11
* FROM CLIP NAME: 010_剣崎雌雄(ノーマル)_手持ちの電池は4本….wav
011  011_____ A     C        00:00:00:00 00:00:10:06 00:01:49:22 00:01:59:28
* FROM CLIP NAME: 011_剣崎雌雄(ノーマル)_リチウムイオン電池….wav
012  012_____ A     C        00:00:00:00 00:00:08:00 00:02:06:09 00:02:14:09
* FROM CLIP NAME: 012_剣崎雌雄(ノーマル)_この白いダミー電池….wav
013  013_____ A     C        00:00:00:00 00:00:02:05 00:02:26:07 00:02:28:12
* FROM CLIP NAME: 013_剣崎雌雄(ノーマル)_マウスポインターが….wav
014  014_____ A     C        00:00:00:00 00:00:01:23 00:02:42:10 00:02:44:03
* FROM CLIP NAME: 014_剣崎雌雄(ノーマル)_正常に使えていますが.wav
015  015_____ A     C        00:00:00:00 00:00:05:03 00:03:13:06 00:03:18:09
* FROM CLIP NAME: 015_剣崎雌雄(ノーマル)_バッテリー残量警告….wav
016  016_____ A     C        00:00:00:00 00:00:06:19 00:03:22:25 00:03:29:14
* FROM CLIP NAME: 016_剣崎雌雄(ノーマル)_ま、充電している間….wav
017  017_____ A     C        00:00:00:00 00:00:07:29 00:03:31:09 00:03:39:08
* FROM CLIP NAME: 017_剣崎雌雄(ノーマル)_僕は日本語キーボー….wav
018  018_____ A     C        00:00:00:00 00:00:02:12 00:03:42:10 00:03:44:22
* FROM CLIP NAME: 018_剣崎雌雄(ノーマル)_では、また次回お会….wav

 === playlist2 === 

001  ________ A     C        00:00:00:00 00:03:45:15 00:00:00:00 00:03:45:15
* FROM CLIP NAME: 碧いアンモライト_4:15.mp3
変換後のファイル
0

001 0:00 00:03:4 --> 5:15 00:00:00:00 00:03:45:15
090af1d6bcf3ef81607b4b3906c9d1e2.mp4

1

001  00:00:03:03 -->  00:00:06:27
 剣崎雌雄(ノーマル)_昨日、兄からワイヤ….wav
002  00:00:11:07 -->  00:00:14:19
 剣崎雌雄(ノーマル)_これがパソコン側に….wav
003  00:00:24:27 -->  00:00:31:09
 剣崎雌雄(ノーマル)_トラックボール付き….wav
004  00:00:36:27 -->  00:00:44:14
 剣崎雌雄(ノーマル)_これは常用している….wav
005  00:00:49:18 -->  00:00:55:24
 剣崎雌雄(ノーマル)_ま、内臓のトラック….wav
006  00:00:57:02 -->  00:01:05:11
 剣崎雌雄(ノーマル)_使用電池です、今使….wav
007  00:01:09:05 -->  00:01:14:03
 剣崎雌雄(ノーマル)_ところが、今回のキ….wav
008  00:01:19:18 -->  00:01:24:23
 剣崎雌雄(ノーマル)_電池が倍なので、単….wav
009  00:01:29:27 -->  00:01:36:19
 剣崎雌雄(ノーマル)_今までは、電池切れ….wav
010  00:01:38:16 -->  00:01:46:11
 剣崎雌雄(ノーマル)_手持ちの電池は4本….wav
011  00:01:49:22 -->  00:01:59:28
 剣崎雌雄(ノーマル)_リチウムイオン電池….wav
012  00:02:06:09 -->  00:02:14:09
 剣崎雌雄(ノーマル)_この白いダミー電池….wav
013  00:02:26:07 -->  00:02:28:12
 剣崎雌雄(ノーマル)_マウスポインターが….wav
014  00:02:42:10 -->  00:02:44:03
 剣崎雌雄(ノーマル)_正常に使えていますが.wav
015  00:03:13:06 -->  00:03:18:09
 剣崎雌雄(ノーマル)_バッテリー残量警告….wav
016  00:03:22:25 -->  00:03:29:14
 剣崎雌雄(ノーマル)_ま、充電している間….wav
017  00:03:31:09 -->  00:03:39:08
 剣崎雌雄(ノーマル)_僕は日本語キーボー….wav
018  00:03:42:10 -->  00:03:44:22
 剣崎雌雄(ノーマル)_では、また次回お会….wav

2

001  00:00:00:00 -->  00:03:45:15
碧いアンモライト_4:15.mp3

このedlファイルは先日アップロードしたワイヤレスキーボードの動画の時の動画編集アプリ「Shotcut」でedl出力したもので、テキストファイル名(ファイル内容の文頭になっている)と指定時間がメインなのでテキストファイル内容はどっちみち手動で貼り付けるしかないガーンま、時刻だけでも正確な時刻に自動で変換できるのはありがたい、もう少し勉強して改良(例:012→12に置換)したいし改良できたらshファイルにしてコマンドとして使えるようにしたいあせる

 

昼食を遅めにして夕食としました下矢印刺し身こんにゃくです。

今日の歩数は、5,574歩です、トリマは4,600マイルで累計80,205となりました音譜

 

kent

  Kent 

 

プログラムっぽい事を久しぶりにした、この老脳がついていけるのか?ま、ボケ防止にはなるかあせる

 

覚書

ターミナルでコピー貼り付けにキーボードショートカットを使用する
Ubuntuや他の多くのLinuxディストリビューションでは、Ctrl + InsertまたはCtrl + shift + Cを使用してテキストをコピーし、Shift + InsertまたはCtrl + shift + Vを使用してターミナルにテキストを貼り付けることができます。

右クリックのコンテキストメニューを使用して、ターミナルでコピーして貼り付ける
ターミナルでテキストを選択し、右クリックして[コピー]を選択します。 同様に、選択したテキストを貼り付けるには、右クリックして[貼り付け]を選択します。

Linux端末でマウスを使用してコピーして貼り付ける
コピーするテキストを選択してから、マウスの中央ボタン(スクロールホイール)を押して、コピーしたテキストを貼り付けることができます。

※ターミナル以外ではWindowsなどと同じように「Ctrl + C」「Ctrl + X」「Ctrl + V」が使えますが、ターミナルモードでは使えません(Windowsが登場する前から?先に「Ctrl + C」などが予約語として使われていた経緯があるようです)


sed コマンドを使用したフィルタリングの説明

 

🔍このブログ内検索

スマホをサクサクにする
ブログ内検索の設定方法
シミ取り関連記事一覧
冷凍食パンの解凍
普通の袋で真空パック
減量目標を達成
人気記事一覧
KentのYoutubeCh
ブログ内検索方法
お気に入り店舗「ShopU」 
ShopU人気商品一覧
ShopU店長の人気記事
 
kentお気楽陽気にぃ〜音譜