批量改名六大神技
批量改名六大神技
shell實例1:
改名指令rename的用法如下:
[root@ChangerLee 批量改名]# touch file_{1..10} [root@ChangerLee 批量改名]# ls file_1 file_10 file_2 file_3 file_4 file_5 file_6 file_7 file_8 file_9 [root@ChangerLee 批量改名]# rename file config file* [root@ChangerLee 批量改名]# ls config_1 config_2 config_4 config_6 config_8 config_10 config_3 config_5 config_7 config_9
shell實例2:
[root@ChangerLee 批量改名]# ls config_1 config_2 config_4 config_6 config_8 config_10 config_3 config_5 config_7 config_9 [root@ChangerLee 批量改名]# cat mulirename.sh #!/bin/bash #multi-change namefor i in `ls config_*` domv $i `echo $i |cut -d _ -f2`.conf done [root@ChangerLee 批量改名]# sh mulirename.sh [root@ChangerLee 批量改名]# ls 10.conf 1.conf 2.conf 3.conf 4.conf 5.conf 6.conf 7.conf 8.conf 9.conf mulirename.shshell實例3:
[root@ChangerLee 批量改名]# ls file* file_stu2016-08-101 file_stu2016-08-103 file_stu2016-08-106 file_stu2016-08-109 file_stu2016-08-1010 file_stu2016-08-104 file_stu2016-08-107 file_stu2016-08-102 file_stu2016-08-105 file_stu2016-08-108 [root@ChangerLee 批量改名]# cat for_modifilename.sh #!/bin/bash #an instantiation of rename for i in `ls file*` do mv $i `echo $i|sed 's/stu//g'` done [root@ChangerLee 批量改名]# sh for_modifilename.sh [root@ChangerLee 批量改名]# ls file* file_2016-08-101 file_2016-08-103 file_2016-08-106 file_2016-08-109 file_2016-08-1010 file_2016-08-104 file_2016-08-107 file_2016-08-102 file_2016-08-105 file_2016-08-108shell實例4:
此實例利用變量中字符串的截取
[root@ChangerLee 批量改名]# touch blog.changerjjlee.net{1..10} [root@ChangerLee 批量改名]# ls blog.changerjjlee.net1 blog.changerjjlee.net4 blog.changerjjlee.net8 blog.changerjjlee.net10 blog.changerjjlee.net5 blog.changerjjlee.net9 blog.changerjjlee.net2 blog.changerjjlee.net6 forename.sh blog.changerjjlee.net3 blog.changerjjlee.net7 [root@ChangerLee 批量改名]# cat forename.sh #!/bin/bash #an instantiation for renamefor name in `ls blog*` do mv $name ${name:5:18} done [root@ChangerLee 批量改名]# sh forename.sh [root@ChangerLee 批量改名]# ls changerjjlee.net1 changerjjlee.net3 changerjjlee.net6 changerjjlee.net9 changerjjlee.net10 changerjjlee.net4 changerjjlee.net7 forename.sh changerjjlee.net2 changerjjlee.net5 changerjjlee.net8shell實例5:
變量名中字符串的替換
[root@ChangerLee 批量改名]# ls changerjjlee.net* changerjjlee.net1 changerjjlee.net2 changerjjlee.net4 changerjjlee.net6 changerjjlee.net8 changerjjlee.net10 changerjjlee.net3 changerjjlee.net5 changerjjlee.net7 changerjjlee.net9 [root@ChangerLee 批量改名]# cat forename.sh #!/bin/bash #an instantiation for renamefor name in `ls *net*` do mv $name ${name/changer/CHANGER} done [root@ChangerLee 批量改名]# sh forename.sh [root@ChangerLee 批量改名]# ls CHANGERjjlee.net1 CHANGERjjlee.net3 CHANGERjjlee.net6 CHANGERjjlee.net9 CHANGERjjlee.net10 CHANGERjjlee.net4 CHANGERjjlee.net7 forename.sh CHANGERjjlee.net2 CHANGERjjlee.net5 CHANGERjjlee.net8shell實例6:
本實例針對文件名中存在空格的改名
[root@ChangerLee Pictures]# ls S* Screenshot from 2016-07-16 03-23-54.png Screenshot from 2016-07-16 03-24-08.png Screenshot from 2016-07-16 03-23-58.png Screenshot from 2016-07-16 04-17-31.png Screenshot from 2016-07-16 03-24-04.png Screenshot from 2016-07-27 04-34-26.png Screenshot from 2016-07-16 03-24-07.png [root@ChangerLee Pictures]# ls S*|awk -F ' ' '{print "mv " $3"-"$4}' mv 2016-07-16-03-23-54.png mv 2016-07-16-03-23-58.png mv 2016-07-16-03-24-04.png mv 2016-07-16-03-24-07.png mv 2016-07-16-03-24-08.png mv 2016-07-16-04-17-31.png mv 2016-07-27-04-34-26.png [root@ChangerLee Pictures]# ls S*|awk -F ' ' '{print "mv " $0 $3"-"$4}' mv Screenshot from 2016-07-16 03-23-54.png2016-07-16-03-23-54.png mv Screenshot from 2016-07-16 03-23-58.png2016-07-16-03-23-58.png mv Screenshot from 2016-07-16 03-24-04.png2016-07-16-03-24-04.png mv Screenshot from 2016-07-16 03-24-07.png2016-07-16-03-24-07.png mv Screenshot from 2016-07-16 03-24-08.png2016-07-16-03-24-08.png mv Screenshot from 2016-07-16 04-17-31.png2016-07-16-04-17-31.png mv Screenshot from 2016-07-27 04-34-26.png2016-07-27-04-34-26.png [root@ChangerLee Pictures]# ls S*|awk -F ' ' '{print "mv " $0" "$3"-"$4}' mv Screenshot from 2016-07-16 03-23-54.png 2016-07-16-03-23-54.png mv Screenshot from 2016-07-16 03-23-58.png 2016-07-16-03-23-58.png mv Screenshot from 2016-07-16 03-24-04.png 2016-07-16-03-24-04.png mv Screenshot from 2016-07-16 03-24-07.png 2016-07-16-03-24-07.png mv Screenshot from 2016-07-16 03-24-08.png 2016-07-16-03-24-08.png mv Screenshot from 2016-07-16 04-17-31.png 2016-07-16-04-17-31.png mv Screenshot from 2016-07-27 04-34-26.png 2016-07-27-04-34-26.png [root@ChangerLee Pictures]# ls S*|awk -F ' ' '{print "mv \"" $0 " "$3"-"$4}' mv "Screenshot from 2016-07-16 03-23-54.png 2016-07-16-03-23-54.png mv "Screenshot from 2016-07-16 03-23-58.png 2016-07-16-03-23-58.png mv "Screenshot from 2016-07-16 03-24-04.png 2016-07-16-03-24-04.png mv "Screenshot from 2016-07-16 03-24-07.png 2016-07-16-03-24-07.png mv "Screenshot from 2016-07-16 03-24-08.png 2016-07-16-03-24-08.png mv "Screenshot from 2016-07-16 04-17-31.png 2016-07-16-04-17-31.png mv "Screenshot from 2016-07-27 04-34-26.png 2016-07-27-04-34-26.png [root@ChangerLee Pictures]# ls S*|awk -F ' ' '{print "mv \"" $0 "\" " $3"-"$4}' mv "Screenshot from 2016-07-16 03-23-54.png" 2016-07-16-03-23-54.png mv "Screenshot from 2016-07-16 03-23-58.png" 2016-07-16-03-23-58.png mv "Screenshot from 2016-07-16 03-24-04.png" 2016-07-16-03-24-04.png mv "Screenshot from 2016-07-16 03-24-07.png" 2016-07-16-03-24-07.png mv "Screenshot from 2016-07-16 03-24-08.png" 2016-07-16-03-24-08.png mv "Screenshot from 2016-07-16 04-17-31.png" 2016-07-16-04-17-31.png mv "Screenshot from 2016-07-27 04-34-26.png" 2016-07-27-04-34-26.png [root@ChangerLee Pictures]# ls S*|awk -F ' ' '{print "mv \"" $0 "\" " $3"-"$4}'>bash [root@ChangerLee Pictures]# ls 2016-07-16-03-23-54.png 2016-07-16-03-24-08.png 2016-07-16-03-23-58.png 2016-07-16-04-17-31.png forename.sh 2016-07-16-03-24-04.png 2016-07-27-04-34-26.png 2016-07-16-03-24-07.png總結
- 上一篇: 批处理之ren命令-可批量修改文件名
- 下一篇: 最强特殊字符、表情符号、Unicdeo字