flvプレイリスト自動生成スクリプト
File2=orenobouken___Episode_11___Part_2.flv
File3=orenobouken___Episode_11___Part_3.flv
File4=orenobouken___Episode_12___Part_1.flv
File5=orenobouken___Episode_12___Part_2.flv
File6=orenobouken___Episode_12___Part_3.flv
File7=orenobouken__うひょー_13_ova_part_1_3.flv
File8=orenobouken_13_ova_part_2_3.flv
File9=orenobouken_13_ova_part_3_3.flv
と言う風に数値のみでソーティングする。
#!/bin/perl # ヽ(°京°)ノ require 'config.pl'; $targetdir = '/home/oreore/flv/' $filter = '*.flv'; foreach $dir(glob "$targetdir*") { print "\n* $dir\n"; my %fhash = (); # ファイル... foreach (glob "$dir/$filter") { s/^$dir\///; $file = $_; # 日本語数字 適当に対応 (このファイルの保存形式に従う) s/1/1/g; s/2/2/g; s/3/3/g; s/4/4/g; s/5/5/g; s/6/6/g; s/7/7/g; s/8/8/g; s/9/9/g; s/0/0/g; # 数値だけ抜き出し while(1) { /(\d+)/ or last; $fhash{$file} .= sprintf( "%032d", $1); $_ = $'; } } # 数値のみでソーティング @keys = sort { $fhash{$a} cmp $fhash{$b} } keys %fhash; $entry=$#keys+1; # ファイルがなければ次へ next unless(@keys); # playlist.pls として保存 nkfパイプ tee open PLS, "| nkf --cp932 -s | tee $dir/playlist.pls" or die $!; # plsファイル生成 print PLS <<"_PLAYLIST_"; [playlist] NumberOfEntries=$entry Version=2 _PLAYLIST_ $cnt = 1; foreach(@keys) { print PLS "File$cnt=$_\n"; $cnt ++; } close PLS; }