日暮途遠(Linux)

Just another WordPress.com site

複数のファイルを指定して、同一名で連番をつけるスクリプト

leave a comment »

適当に作りました。個人用なのでご利用になる場合取り扱いには十分注意が必要だと思います。

#!/bin/bash

cnt=`ls -1 $* | wc -l`
echo $*
echo "${cnt}個の対象ファイルがあります。変更ファイル名を指定して下さい。"
read fn

n=1
for f in $*; do
	mv $f ${fn}_`printf "%02d" ${n}`.jpg
	n=`expr $n + 1`
done

実行例:


ak@ak-Prime-Series:~/aa % for i in `seq -w 1 30`;do touch abc_${i}.txt; done
ak@ak-Prime-Series:~/aa % ls
abc_01.txt  abc_06.txt  abc_11.txt  abc_16.txt  abc_21.txt  abc_26.txt
abc_02.txt  abc_07.txt  abc_12.txt  abc_17.txt  abc_22.txt  abc_27.txt
abc_03.txt  abc_08.txt  abc_13.txt  abc_18.txt  abc_23.txt  abc_28.txt
abc_04.txt  abc_09.txt  abc_14.txt  abc_19.txt  abc_24.txt  abc_29.txt
abc_05.txt  abc_10.txt  abc_15.txt  abc_20.txt  abc_25.txt  abc_30.txt
ak@ak-Prime-Series:~/aa % h-rename-dejikame.sh abc_{09..17}*
abc_09.txt abc_10.txt abc_11.txt abc_12.txt abc_13.txt abc_14.txt abc_15.txt abc_16.txt abc_17.txt
9個の対象ファイルがあります。変更ファイル名を指定して下さい。
テスト中のファイル
ak@ak-Prime-Series:~/aa % ls
abc_01.txt  abc_18.txt  abc_26.txt                 テスト中のファイル_04.jpg
abc_02.txt  abc_19.txt  abc_27.txt                 テスト中のファイル_05.jpg
abc_03.txt  abc_20.txt  abc_28.txt                 テスト中のファイル_06.jpg
abc_04.txt  abc_21.txt  abc_29.txt                 テスト中のファイル_07.jpg
abc_05.txt  abc_22.txt  abc_30.txt                 テスト中のファイル_08.jpg
abc_06.txt  abc_23.txt  テスト中のファイル_01.jpg  テスト中のファイル_09.jpg
abc_07.txt  abc_24.txt  テスト中のファイル_02.jpg
abc_08.txt  abc_25.txt  テスト中のファイル_03.jpg

Written by 廣野秀樹

2012年4月29日 @ 11:44 午前

カテゴリー: スクリプト

Tagged with

コメントを残す