码迷,mamicode.com
首页 > 系统相关 > 详细

Linux中批量修改文件名

时间:2016-04-22 01:20:08      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:linux中批量修改文件名 rename 命令

Linux中批量修改文件名


有时候我们有一个目录下面的文件名都需要重新命令

如: 以下有十个学生完成的脚本,现在需要将finish改为ing

[root@slave test]# touch student_{01..10}_finish.sh
[root@slave test]# ls student_*
student_01_finish.sh  student_03_finish.sh  student_05_f
student_02_finish.sh  student_04_finish.sh  student_06_finish.sh  student_08_finish.sh  student_10_finish.sh


方法1: sed

for f in `ls student_*` ; do echo $f | mv $f `sed ‘s#finish#ing#g‘`;done



方法2: awk 字符串拼接的方法(在传递给bash)

测试:

[root@slave test]# echo student_05_finish.sh | awk -F ‘finish‘ ‘{ print "mv " $0 " " $1 "ing"$2}‘
mv student_05_finish.sh student_05_ing.sh


批量执行

[root@slave test]# for f in `ls student*` ;do echo $f | awk -F ‘finish‘ ‘{ print "mv " $0 " " $1 "ing"$2}‘;done | bash
[root@slave test]# ls student_*
student_01_ing.sh  student_03_ing.sh  student_05_ing.sh  student_07_ing.sh  student_09_ing.sh
student_02_ing.sh  student_04_ing.sh  student_06_ing.sh  student_08_ing.sh  student_10_ing.sh


或:

for f in `ls student*` ;do echo $f | mv $f `awk -F ‘finish‘ ‘{ print  $1 "ing" $2}‘`;done

  


方法三: rename命令,专业处理批量修改文件名的linux 命令

用法: man rename

技术分享



[root@slave test]# rename "finish" "ing" student_*
[root@slave test]# ls student_*
student_01_ing.sh  student_03_ing.sh  student_05_ing.sh  student_07_ing.sh  student_09_ing.sh
student_02_ing.sh  student_04_ing.sh  student_06_ing.sh  student_08_ing.sh  student_10_ing.sh










本文出自 “崔德华运维打工从业路” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1766448

Linux中批量修改文件名

标签:linux中批量修改文件名 rename 命令

原文地址:http://cuidehua.blog.51cto.com/5449828/1766448

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!