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

简介:

举例如下:批量创建10个随机字符串的文件,要求每个文件名后面添加_aaa,后缀名不变;

[root@localhost goodboy]# ls

adddbbdedf.html  baacjaiija.html  bhcfaabcfh.html  dgjdcdfbca.html  efejadfdji.html

agdhcdeaje.html  bgffbffjcg.html  cbbiebdafh.html  diadebbhag.html  jcajafgejf.html

脚本1:

1
2
3
4
5
6
7
8
9
[root@localhost ~] # cat 02.sh
#!/bin/bash
#written by mofansheng@2016-02-17
path= /goodboy
[ -d $path ] &&  cd  $path
for  file  in  ` ls `
do
  mv  $ file  ` echo  $ file | sed  's/\(.*\)\.\(.*\)/\1_aaa.\2/g' `
done


解释说明:

使用sed替换,正则表达式第1个()括号里面代表文件名即\1;中间. 使用\进行脱意,代表分隔符;

第2个括号里面代表后缀html内容即\2;

使用此方法需要在替换中添加.符号;


更改后的效果如下:

1
2
3
4
5
6
7
8
9
10
11
[root@localhost goodboy] # ll
-rw-r--r-- 1 root root 0 2月  17 17:40 adddbbdedf_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 agdhcdeaje_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 baacjaiija_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 bgffbffjcg_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 bhcfaabcfh_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 cbbiebdafh_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 dgjdcdfbca_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 diadebbhag_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 efejadfdji_aaa.html
-rw-r--r-- 1 root root 0 2月  17 17:40 jcajafgejf_aaa.html


脚本2:

1
2
3
4
5
6
7
8
#!/bin/bash
#written by mofansheng@2016-02-17
path= /goodboy
[ -d $path ] &&  cd  $path
for  file  in  ` ls `
do
  mv  $ file  ` echo  $ file | sed  's/\(.*\)\(\..*\)/\1_aaa\2/g' `
done


解释说明:

同样使用sed替换,正则表达式,与上面的区别在于第2个括号里面的内容,代表.html 分隔符和后缀名为一体,替换内容的话不需要再单独加.点;.分隔符同样需要使用\进行脱意;


可以使用sed -r参数,看起来就清爽很多,不需要\脱意;

mv $file `echo $file|sed -r 's/(.*)(\..*)/\1_aaa\2/g'`


大家有更好的方法,欢迎分享知识~





本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1743016,如需转载请自行联系原作者

目录
相关文章
|
3天前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
14 2
|
24天前
|
Shell
Shell脚本有哪些基本语法?
【9月更文挑战第4天】
41 17
|
24天前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
35 12
|
22天前
|
网络协议 关系型数据库 MySQL
Shell 脚本案例
Shell 脚本案例
34 8
|
23天前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
28天前
|
运维 监控 Shell
自动化运维之宝:编写高效的Shell脚本
【8月更文挑战第31天】在运维的世界里,Shell脚本是一把瑞士军刀,它让日常任务变得简单而高效。本文将通过浅显易懂的语言和实际案例,带你领略Shell脚本的魅力,并教你如何打造属于自己的自动化工具箱。无论你是初学者还是资深运维,这篇文章都将为你打开一扇窗,让你看到不一样的风景。让我们一起探索Shell脚本的世界吧!
|
1月前
|
存储 Shell 数据安全/隐私保护
minio一键安装脚本分享(shell和python)
minio一键安装脚本分享(shell和python)
43 0
|
1月前
|
关系型数据库 Shell 数据库
postgres14一键安装脚本分享(shell和python)
postgres14一键安装脚本分享(shell和python)
27 0
|
1月前
|
监控 Shell Linux
在Linux中,如何使用shell脚本检测磁盘使用率?
在Linux中,如何使用shell脚本检测磁盘使用率?
|
1月前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?