#!/bin/sh ## for i in *$1* do mv $i `ls $i | sed "s/$1/$2/"` done ### ### (おまけ) ### ### 以下のような for i in ... において,... 部分に $1 が来るとき, ### $1 に正規表現が入っていると,正規表現が ... に代入されるので ### はなく,まず shell で展開されてから一つずつ ... に入ってくる ### ため,これではなんと全くループしない. ## ## for i in $1 ## do ## jperl -n -p -e 's/\r//g' $i > $i\.tmp ## nkf -e $i\.tmp > $i ## rm $i\.tmp ## done ## ### 引数として正規表現を許容するためには,複数の引き数を渡り歩く ### ように shift 命令を使わなければならない. ### 次の例は、crrmv スクリプトである。 ## ##while [ ! -z "$1" ] ##do ## jperl -n -p -e 's/\r//g' $1 > $1\.tmp ## nkf -e $1\.tmp > $1 ## rm $1\.tmp ## shift ##done ## ### もう一つ例を挙げる。これは nkfs スクリプトである。 ## ##while [ ! -z "$1" ] ##do ## nkf -s $1 > nkfs.tmp ## cat nkfs.tmp > $1 ## rm nkfs.tmp ## shift ##done ##