Kan-Ru Chen's Weblog

小程式...

因為抓了不少midi檔, 乾脆就寫個小程式來建立檔案列表, 可以餵給timidity按順序播放 用的語言有perl跟ruby, 其實用find加echo應該就可以寫出來了, 跟本不用動用到script 就當做是練習吧 :P

Perl :

#!/usr/bin/perl
# filename : mklist.pl
open(LIST, ">list.tpl");
opendir(DIR, "/home/kanru/download/midi");
@dir=readdir(DIR);
$i = 0;
$addr = `pwd`;
chomp $addr;
foreach(@dir) {
        print LIST m/.*\.mid/ ? "$addr/$_\n" : "";
        $i++;
}
print "列表完成,總共有 $i 個檔案\n";
close(LIST);
closedir(DIR);

Ruby :

#!/usr/bin/ruby -w
# filename : mklist.rb
pwd = Dir.pwd
dir = Dir.open('.')
filelist = open('filelist.tpl','w+')
count = 0
dir.each do |filename|
        filelist.puts "#{pwd}/#{filename}" if filename.include?('.mid')
        count += 1
end
dir.close
filelist.close
puts "列表完成, 共有#{count}個檔案"

兩個程式產生的列表是一樣的