お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-11-22 11:22:03

kampisi
メンバ
登録日: 2007-11-20

ファイル名に乱数を付与するシェルスクリプト

SDカードで使用するFMトランスミッターでMP3を聴いています。
このトランスミッターに一応ランダム再生モードはあるのですが、エンジンを切る度に元に戻ってしまいます。
それならMP3中のデータファイル名そのものをランダム化したら、と考えました。
GPrenameは使っておりますが、連番付与の機能はあるものの、ランダムにはならないようです。

aaaa.mp3          bbbb.mp3          cccc.mp3          dddd.mp3 ・・・・・

というファイル名の先頭に乱数を付与して

219aaaa.mp3     106bbbb.mp3    059cccc.mp3     371dddd.mp3 ・・・・・

というような感じで処理されるシェルスクリプトを作ろうと思ったのですが、自分の力量では無理でした。
どなたかお助け願えれば幸いです。

オフライン

 

#2 2011-11-22 12:11:55

lay
新しいメンバ
登録日: 2011-11-22

Re: ファイル名に乱数を付与するシェルスクリプト

こんにちは。
僕はシェルスクリプトについては全くわかりません。

ので、バッチ処理をするときはいつもPythonで書いてます。
ubuntuには標準で実行環境が入ってますのでそのまま使えると思います。

参考までに、スクリプトを実行したフォルダの *.mp3 ファイルをリネームするスクリプトは以下の様になります。
(※オリジナルファイルに対して使わないよう注意してください。)

コード:

$ vim mp3randomize.py

#!/usr/bin/env python
# vim:fileencoding=utf-8
import os, glob, random

for file in glob.glob("*.mp3"):
    os.rename(file, "%05d%s" % (random.randint(0, 99999), file)) # aaa.mp3は 00000aaa.mp3の形にリネームされます。

000aaa.mp3のように桁数を変えたい場合は、

コード:

os.rename(file, "%03d%s" % (random.randint(0, 999), file))

のように2ヶ所を変更してください。

使うときは

コード:

$ cd /media/sd
$ /home/user/mp3randomize.py

とか。

複数回同じファイル郡に対して実行すると000000000000000aaa.mp3とどんどんファイル名が長くなっていっちゃいますが。。。

オフライン

 

#3 2011-11-22 15:23:03

kampisi
メンバ
登録日: 2007-11-20

Re: ファイル名に乱数を付与するシェルスクリプト

lay様

素早いご教示誠にありがとうございます!
本当は自分で書けるようにコツコツ勉強すべきでしょうが…
教えていただいた通りにやってできました。ありがとうございました。

オフライン

 

#4 2011-11-22 21:21:36

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: ファイル名に乱数を付与するシェルスクリプト

色んな方法が紹介されています。
http://d.hatena.ne.jp/hycon/20101007/1286450035

オフライン

 

Board footer

Powered by FluxBB