お知らせ

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

#1 2007-12-26 16:19:21

gonchichi
メンバ
登録日: 2007-10-28

ファイル名の一括変更

こんにちは。
Macで作成された拡張子のないJPEGファイルがたくさんあります。
あるディレクトリの中の拡張子のない全てのファイルに.jpgをつけるコマンドを
教えていただけないでしょうか。
コマンド集などを探したのですが、見つけられませんでした。
初歩的な質問で申し訳ございません。

オフライン

 

#2 2007-12-26 16:37:40

hito
管理者
登録日: 2007-03-18

Re: ファイル名の一括変更

コード:

for i in `find . -maxdepth 1 \! -name \*.\*` ; do mv $i $i.jpg ;done

即興なのでバックアップを取った上でどうぞ。

オフライン

 

#3 2007-12-26 16:50:37

yama
メンバ
登録日: 2006-10-23

Re: ファイル名の一括変更

シェルスクリプトで処理するのが王道ですが、リネームソフトもあるようです。
metamorphose(日本語化されてました)
http://file-folder-ren.sourceforge.net/
使い勝手は分りませんが。

オフライン

 

#4 2007-12-26 18:01:58

anoir
モデレータ
From: Berkeley, CA
登録日: 2007-01-13

Re: ファイル名の一括変更

xfceのファイルマネージャーであるThunarにはBulk Renamerが含まれていますね。

http://thunar.xfce.org/pwiki/documentation/bulk_renamer

こういうのでも役に立つ場面は多いのでPythonかなんかで書いたものが含まれていると便利なのでしょうが(Nautilusのプラグインであるかな?)。

オフライン

 

#5 2007-12-26 18:12:52

anoir
モデレータ
From: Berkeley, CA
登録日: 2007-01-13

Re: ファイル名の一括変更

gtk-perlのものならGPRenameがありました。

http://gprename.sourceforge.net/

オフライン

 

#6 2007-12-26 20:26:38

gonchichi
メンバ
登録日: 2007-10-28

Re: ファイル名の一括変更

hitoさん、yamaさん、anoirさん、ありがとうございます。
macでも同じ作業をしたかったので、できればコマンドでやりたいと思います。
hitoさんに教えていただいたコマンドはUbuntuではちゃんと拡張子つきました。
だたし、私にはコマンドがちんぷんかんぷんです。
1.ディレクトリの中のファイルはすべて拡張子のないJPEGファイル
2.そのディレクトリの下には他の階層はない
という条件なら、もっと簡単なコマンドでできませんか?
よろしくおねがいします。

オフライン

 

#7 2007-12-26 21:00:40

gonchichi
メンバ
登録日: 2007-10-28

Re: ファイル名の一括変更

ただいまMacでも試してみましたが,hitoさんに教えていただいたコマンドでうまくいきました。
ありがとうございます。
(まだちんぷんかんぷんなのは変わりませんが。)
いま、一生懸命、件のコマンドの意味を調べてます。
Macは長年使ってますが、今日始めてターミナルを使いました。

オフライン

 

#8 2007-12-26 21:33:28

hito
管理者
登録日: 2007-03-18

Re: ファイル名の一括変更

gonchichi による投稿:

1.ディレクトリの中のファイルはすべて拡張子のないJPEGファイル
2.そのディレクトリの下には他の階層はない
という条件なら、もっと簡単なコマンドでできませんか?
よろしくおねがいします。

コード:

for i in `/bin/ls -1 *` ; do mv $i $i.jpg ;done

でどうぞ。

# 即興なのでバックアップを(以下略)

オフライン

 

#9 2007-12-26 21:37:46

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

Re: ファイル名の一括変更

初心者にも分かり易いスクリプト(renamejpg.sh)を
使い方: $ renamejpg.sh <ディレクトリ>
下記スクリプトを、renamejpg.sh と名前を付け、$HOME/bin/ に保存、実行権を付けます。

コード:

#!/bin/bash

res=`ls $1`
for f in $res
do
    mv ${1}"/"${f} ${1}"/"${f}".jpg"
done

解説
res=`ls $1`
 変数 $1 :renamejpg.shに対する第一引数(ディレクトリ名)
 指定されたディレクトリのファイルをリストし、変数res に代入
for f in $res
 変数 res から、1っづつ、ファイル名を f に代入し、do〜done を実行する
mv ${1}"/"${f} ${1}"/"${f}".jpg"
 引数のディレクトリ名とファイル名を連結、リネーム

最後の編集者: si (2007-12-26 21:48:40)

オフライン

 

#10 2007-12-26 22:32:03

gonchichi
メンバ
登録日: 2007-10-28

Re: ファイル名の一括変更

hitoさん、これはまた簡潔なコマンドありがとうございます。
ばっちり機能しました。

siさん、スクリプトだと、何度も同じような作業をするときに便利なんですね。
ご丁寧な解説ありがとうございます。
恥ずかしながら、なんとなくでしか理解できませんが、
おかげさまで、hitoさんのコマンドもなんとなく理解できたような気がします。
(まだ、自分では書けないけど)
恥をかきついでにお聞きします。
こういうスクリプトって何かのプログラム言語ですか?

オフライン

 

#11 2007-12-27 00:06:58

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

Re: ファイル名の一括変更

>こういうスクリプトって何かのプログラム言語ですか?
#!/bin/bash
とあるように、Ubuntu標準シェル、bashのスクリプトです。
例えば、rubyスクリプトの場合は、ここが
 #!/usr/bin/ruby とか #!/usr/bin/env ruby
になります。ruby は、標準では入ってませんが、perl とか python と言ったスクリプト言語は,標準で入っています。

オフライン

 

#12 2007-12-27 11:34:10

ken661215
メンバ
登録日: 2007-10-24

Re: ファイル名の一括変更

siさん

考慮済でしたら、申し訳ありません。

今まわりにLinux環境がないので試せていませんが、
投稿されたスクリプト、
ディレクトリ名にスペースが入っていた場合も問題ないでしょうか。

余計な心配なら良いのですが、初心者の方も使われると思いますので・・・

オフライン

 

#13 2007-12-27 12:33:50

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

Re: ファイル名の一括変更

ken661215 による投稿:

siさん

考慮済でしたら、申し訳ありません。

今まわりにLinux環境がないので試せていませんが、
投稿されたスクリプト、
ディレクトリ名にスペースが入っていた場合も問題ないでしょうか。

余計な心配なら良いのですが、初心者の方も使われると思いますので・・・

考慮していません。ディレクトリ名にスペースが入っている場合は問題出ます。

オフライン

 

#14 2007-12-27 13:55:09

ken661215
メンバ
登録日: 2007-10-24

Re: ファイル名の一括変更

>考慮していません。ディレクトリ名にスペースが入っている場合は問題出ます。
siさん、ご回答ありがとうございました。でしゃばってすみません。

と言うことですので、gonchichiさん

スクリプトを作成する際に、
名称にスペースが含まれるディレクトリを対象に処理をする場合は、
注意が必要です。

最後の編集者: ken661215 (2007-12-27 15:02:51)

オフライン

 

#15 2007-12-27 22:31:52

gonchichi
メンバ
登録日: 2007-10-28

Re: ファイル名の一括変更

ken661215さん、siさん、ありがとうございます。
スペースの入ったディレクトリ名やファイル名は使ったことないので
私については問題なさそうです。
bashってなんとなくDOSのconfig.sysみたいなものと思っていたのですが、
すごく複雑なんですね。ゆっくり勉強してみます。
でわ有難うございました。

オフライン

 

Board footer

Powered by FluxBB