NAV_MENU
賽は投げられた。人事尽くして天命待つと言うか、転がりだした物は止められないというか。まぁ、ちょとは覚悟しとけよ。
基本的に毎日更新。出来なかったときは遡ってやります。多分。きっと。出来たら良いな

rename用スクリプト

ちょいっとリネーム用のスクリプトを書く
デジカメのファイルとかってJPGとRAWができるので
同時にリネームするの面倒だしなーって事で
同じベースファイル名を持つ拡張子の異なるファイルをまとめてリネームする
こんなシェルスクリプトを書いてみた

rename_all.sh

#!/bin/sh

SRC2FILE="$1"
TRG2FILE="$2"

SRC2BASENAME="${SRC2FILE%.*}"
SRC2EXTNAME="${SRC2FILE##*.}"

TRG2BASENAME="${TRG2FILE%.*}"

CHECKEXISTSFILE=0
for filename in `ls "${SRC2BASENAME}".*`; do
# find "$(dirname $SRC2FILE)" -type f -name "$(basename ${SRC2BASENAME}).*" | while read filename
# do
SRC2EXTNAME="${filename##*.}"
if [ -f "${TRG2BASENAME}.${SRC2EXTNAME}" ]; then
CHECKEXISTSFILE=1
fi
done
if [ $CHECKEXISTSFILE -eq 0 ]; then
for filename in `ls "${SRC2BASENAME}".*`; do
SRC2EXTNAME="${filename##*.}"
if [ -f "${SRC2BASENAME}.${SRC2EXTNAME}" -a ! -f "${TRG2BASENAME}.${SRC2EXTNAME}" ]; then
mv "${SRC2BASENAME}.${SRC2EXTNAME}" "${TRG2BASENAME}.${SRC2EXTNAME}" && echo "${SRC2BASENAME}.${SRC2EXTNAME} -> ${TRG2BASENAME}.${SRC2EXTNAME}"
fi
done
else
exit 1
fi


BSD仕様です
一応スペース付きのファイルも大丈夫なのを確認済み。linuxのlsの仕様はどうか知らないから知らない


test1.jpg test1.raw test1.xmp

の所で

$ rename.sh test1.jpg test2.jpg

とすると

test2.jpg test2.raw test2.xmp

こうなる