パスワードを忘れた? アカウント作成
449846 journal

T.MURACHIの日記: スクリプトいろいろ

日記 by T.MURACHI

/. 日記向けにテキスト (主にソースコード) をエンコードするスクリプトを書いてみました。

# パブリックドメイン / 各自の責任においてご利用ください

#!/usr/bin/perl -p
%ref = ( qw(< LT > GT " QUOT & AMP), ' ' => 'nbsp' );
s/(^|.*)\t/$1.(' ' x (8 - length($1) % 8))/eg;
s/[<>"& ]/&$ref{$&};/g;
s/$/<BR>/;

敬意を表して、コマンド名を slashcat としてみたり。

んー、これだけではちょっと寂しいので、かなり個人的な用途のために作った実用性の極めて低いスクリプトも一緒に掲載してみるテスト(w。

# パブリックドメイン / 各自の責任においてご利用ください
# (内容が完全に理解できない人は使うべきじゃないかも。。。こっちはまぢで危険っす ^_^;)

#!/usr/bin/perl
$dev = '/dev/sda1'; # mount device
$target = './usb-hd'; # target pointer to mount device
$music_dir = './mp3z'; # music file directory

mkdir $target or die "$0: Cannot make directory '$target'.";
system "mount $dev $target" and die "$0: Cannot mount device.";

system "rm -r $target/music" and die "$0: Cannot remove directory '$target/music'.";
mkdir "$target/music" or die "$0: Cannot make directory '$target/music'.";
$df = `df --block-size=1 | grep $dev`
or die "$0: remaining capacity of device cannot bi investigated...Why!?";
($capacity) = $df =~ /^\S+\s+\d+\s+\d+\s+(\d+)\s/;

@ls = split /\n/, `ls $music_dir/*.mp3` or die "$0: Music files not found.";
push @files, { 'path' => $_, 'size' => -s $_ } foreach @ls;
$out_file_name = 'm001';
while (1){
my ($file) = splice @files, int(rand scalar @files), 1;
($capacity -= $file->{'size'}) >= 0 or last;
system "cp $file->{'path'} $target/music/$out_file_name.mp3"
and die "$0: Cannot copy file '$file->{'path'}' to '$target/music/$out_file_name.mp3'.";
$out_file_name++;
}

system "umount $target" and die "$0: Unmount device failed...Why!?";
rmdir $target or die "$0: Cannot remove directory '$target'...Why!?";

要約すると、普段持ち歩いている USB ストレージタイプの mp3 プレーヤー用に、ローカルにある mp3 ファイルをランダムに選んで詰め込めるだけ詰め込んじゃうスクリプトです。使い方はまぁ、ソース読んで分からない人には秘密です ;-) 。ちなみに、プレーヤーに格納されるファイルは、ファイル名が一律 "m???.mp3" (??? は数字で、コピーした順番) になるので、どのファイルが何の曲なのかわからなくなり、実際に外に持ち歩いてみるまでどの曲が入っているのか分からなくなるという、かなりミステリアスな仕様となっております(w。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...