批量修改文件名

  1 #!/bin/env sh
  2 
  3 i=0
  4 for file in *.pdf
  5 do
  6    mv $file a$i.pdf
  7    i=$[$i+1]

  8 done


Linux批量重命名文件会涉及到改变一个字母、改变一些相连字母、改变某些位置的字母、在最前面加上某些字母、或者改变字母的大小写。完成这里五个方法基本上就会解决了Linux批量重命名的工作。

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

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

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

  
  
  
  
  1. for file in `ls`  
  2. do  
  3.   newfile =`echo $i | sed 's/^./q/'`  
  4.  mv $file $newfile  
  5. 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

目录下的是model-xxxxx的文件,xxxxx表示数字,输出后缀为奇数的文件名


for i in `ls`; do a=${i:6}; var=`expr $a % 2`; if [ $var != 0 ];  then echo $i; fi; done


删除后缀为奇数的文件

for i in `ls`; do a=${i:6}; var=`expr $a % 2`; if [ $var != 0 ];  then rm $i; fi; done


你可能感兴趣的:(批量修改文件名)