Linux中批量修改文件名

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

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

[[email protected] test]# touch student_{01..10}_finish.sh
[[email protected] 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)

测试:

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

批量执行

[[email protected] test]# for f in `ls student*` ;do echo $f | awk -F ‘finish‘ ‘{ print "mv " $0 " " $1 "ing"$2}‘;done | bash
[[email protected] 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

[[email protected] test]# rename "finish" "ing" student_*
[[email protected] 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
时间: 2024-10-14 18:42:14

Linux中批量修改文件名的相关文章

Linux下批量修改文件名(rename)

原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的在本目录下只需要# rename 'cdb1' 'cdb' * 以前都是写个for循环来做...想想多傻啊, 呵呵 rename还有更多的功能, 建议man rename下 From:http://www.ha

Linux下批量修改文件名(rename)

1.rename命令批量修改文件名, 其实Linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的在本目录下只需要# rename 'cdb1'  'cdb'  * 以前都是写个for循环来做...想想多傻啊, 呵呵 rename还有更多的功能, 建议man rename下 From:http://www.hao32.com/unix-linux/42.html 2.批量更改文件名 rename 通过 man rename 命

linux(uinx)批量修改文件名的命令行

ming内容前要:同事有一个批量改服务器上文件名字的需求.我把在ubuntu上批量修改文件名字的命令给他,但是不能用.因为服务器是unix.所以下面整理一下批量修改文件名的命令. ===================================================我是分隔符================================================ 首先 你要先知道 自己所处的服务器环境. 命令:cat /proc/version 接下来介绍 一下ubunt

linux下批量修改文件名之rename

最近因为突然用到需匹配更换文件名,发现rename命令真是 简单好用,和sed语法及vim 替换很相似. 1. 更改文件名后缀 rename 's/\.txt/\.html/' * 2.增加文件名后缀 rename 's/$/\.txt/' * 3.删除文件名后缀 rename 's/.txt//' * 4.模式匹配修改文件名 rename 's/A-Z/a-z/' or rename 's/(\d)/第$1章/' *

linux下批量修改文件名

作者:iamlaosong 一批文件如下: 03003_anhui_20141206.dat  03005_anhui_20141208.dat  03014_anhui_20141210.dat 03003_anhui_20141207.dat  03005_anhui_20141209.dat  03014_anhui_20141211.dat 03003_anhui_20141208.dat  03005_anhui_20141210.dat  03015_anhui_20141206.d

shell脚本:批量修改文件名(删除文件名中字符)

shell脚本:批量修改文件名(文件名中添加字符) 上一篇写过批量修改文件名(文件名中添加字符),工作中还存在这样的需求,批量修改文件名,删除文件名中的某些字符: 举例如下:批量改名,删除文件名中多余字符 目录下文件名为如下,要求去掉_finished. stu_102999_1_finished.jpg stu_102999_2_finished.jpg stu_102999_3_finished.jpg stu_102999_4_finished.jpg stu_102999_5_finis

VBS自编写脚本。(实现批量修改文件名且在执行前,备份原有文件夹中的文件)

'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0'' NAME: '' AUTHOR: Microsoft , Microsoft' DATE : 2014/7/9'' COMMENT: '批量修改文件夹下对应的所有文件名''==========

使用Java中File类批量创建文件和批量修改文件名

批量创建文件 1 int cont = 1; 2 String s = "E:\\学习资料\\Java笔记-"; 3 while(cont<100){ 4 File f = new File(s+cont+".txt"); 5 if(!f.exists()){ 6 f.createNewFile(); 7 } 8 cont++; 9 } 批量修改文件名 1 File file = new File("E:\\学习资料"); 2 String

如何用python从文中获取文件名再用正则表达式批量修改文件名

第零步:问题的提出 我在网上购买了星火英语的六级晨读美文100篇(六级早已高分飘过,不过很喜欢这些文章,买来重新品味),但是发现其文章的命名都为01.txt或10.txt等.为了便于检索需要修改文件名称. 第一步:从文件中取出文件名. 我发现txt文件的第一行为文件名,格式为如:Passage 3. Three Passions I Have Lived for, 后面还有几个换行符.写下如下代码进行第一步修改: import os x = 1 while x < 101: if x < 10