UNIX下批更改文件名的shell
时间:2006-08-29 来源:netop5
在unix系统下经常要碰到改文件名,如果是改单个文件则好处理,但要是批量改文件名则工作量很大,必须运用shell程序来实现,以下程序就是通过shell来实现批量更改日志文件名的程序,大家可以稍作修改,就可以实现批更改你所需要更改的文件名。
以下就为程序内容,可供大家学习参考:
#此处SHELL脚本是将CYYMMDD.*的文件批改名为YYYYMMDD.*的文件
STR="请选择:"
DATE="请输入日期(031001):"
while true
echo "1) 批更改文件名"
echo "0) 退出\n"
printf $STR
read anwser
do
case $anwser in
1)
printf $DATE
read ndate
file1='C'$ndate'.*'
#定义FILE1为C打头的带日期的所有文件
#echo $file1
ls $file1 > test.txt
out1=`more test.txt|awk '{print $1}'`
number=`more test.txt|wc -l`
i=1
echo "number = " $number
while true
do
put1=`echo $out1|awk '{print $'$i'}'`
put2=`echo $out1|awk '{print substr($'$i',2,10)}'`
put2='20'$put2
echo $put1
echo $put2
mv $put1 $put2
i=`expr $i + 1`
if [ $i -gt $number ]
then
break
fi
done
echo "批更改文件成功!\n"
;;
0)
exit
;;
esac
done
以下就为程序内容,可供大家学习参考:
#此处SHELL脚本是将CYYMMDD.*的文件批改名为YYYYMMDD.*的文件
STR="请选择:"
DATE="请输入日期(031001):"
while true
echo "1) 批更改文件名"
echo "0) 退出\n"
printf $STR
read anwser
do
case $anwser in
1)
printf $DATE
read ndate
file1='C'$ndate'.*'
#定义FILE1为C打头的带日期的所有文件
#echo $file1
ls $file1 > test.txt
out1=`more test.txt|awk '{print $1}'`
number=`more test.txt|wc -l`
i=1
echo "number = " $number
while true
do
put1=`echo $out1|awk '{print $'$i'}'`
put2=`echo $out1|awk '{print substr($'$i',2,10)}'`
put2='20'$put2
echo $put1
echo $put2
mv $put1 $put2
i=`expr $i + 1`
if [ $i -gt $number ]
then
break
fi
done
echo "批更改文件成功!\n"
;;
0)
exit
;;
esac
done
相关阅读 更多 +