複数のファイル名を一括して置き換えする
スクリプト名: rename.sh
書式 : rename.sh 検索文字列 置換え文字列 ファイル...
目的 : 複数のファイル名を一括して置換えする
戻り値 : 全て成功:0 失敗:1 エラー:9
#!/bin/sh . Error_Msg.sh && . Arg_Nums.sh || exit 9 Arg_Nums -ge 3 "$@" || exit 9 _SRC_STR=$1 _SUB_STR=$2 shift 2 for _FILE in "$@"; do [ -e "$_FILE" ] || \ { Error_Nsg "$0" "$_FILE did not exist, or permission denied."; exit 1; } #新しいファイル名を生成する #sedコマンドの-nオプションとpフラグは、置換えに成功した場合だけ #出力するよになっていて、失敗した場合は_NEWは空になる _NEW=$(echo "$_FILE" | sed -n "s#$_SRC_STR#$_SUB_STR#p") if [ "$_NEW" != "" ]; then mv "$_FILE" "$_NEW" 2> /dev/null [ $? = 0 ] || \ { Error_Msg "$0" "Could not rename from $_FIEL to $_NEW"; \ _RETURN=1; } _FLAG=1 fi done [ "$_FLAG" = 1 ] || \ { Error_Msg rename.sh "No \"$_SRC_STR\" found."; exit 1; } exit $_RETURN