linux之文件批量重命名

Submitted by admin on Tue, 11/22/2011 - 05:27

1、我想把它们的名字的第一个1个字母变为"q",其它的不变 

 [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/^./q/'`; done

或者写个脚本,显得更加清晰:

for file in `ls`
do
  newfile =`echo $i | sed 's/^./q/'`
 mv $file $newfile
done

2、修改前面5个字母为zhaozh 

 [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/^...../zhaozh/'`; done

3、修改后面5个字母为snail 

 [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/.....$/snail/'`; done

4、在前面添加 _hoho_ 

 [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo "_hoho_"$i`; done

5、所有的小写字母变大写字母 

 [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | tr a-z A-Z`; done

唉,举了5个例子,说到底就是用“for 循环 + 组合命令处理”的思路来实现文件批量重命名滴。