ファイル名の拡張子を変更する
古い拡張子を取り除いた後、新しい拡張子を付ける
#!/bin/sh #chgext.sh if [ $# -lt 2 ]; then echo "Usage: chgext.sh .newext files..." exit 1 fi newext="$1" shift #新しい拡張子が.で始まっていない場合付け加える expr "$newext" : '\.' >/dev/null || newext=".${newext}" #残りの全ての引数について繰り返して処理 for fname do bname=`echo "$fname" | sed 's/\.[^.]*//'` mv "$fname" "${bname}${newext}" done
$ ls *.txt; ./chgext.sh text *.txt; ls *.text 1.txt 1.text