批量处理文件名中删除几个字(批量文件删除_后面的文件名)

批量处理文件名中删除几个字(批量文件删除_后面的文件名)举例如下 批量创建 10 个随机字符串的文件 要求每个文件名后面添加 aaa 后缀名不变 root localhost goodboy ls adddbbdedf html baacjaiija html bhcfaabcfh html dgjdcdfbca html efejadfdji html agdhcdeaje html bgffbffjcg html cbbiebdafh

大家好,我是讯享网,很高兴认识大家。



举例如下:批量创建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:

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

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

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

更改后的效果如下:

脚本2:

解释说明:

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


讯享网

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

举例如下:批量改名,删除文件名中多余字符

目录下文件名为如下,要求去掉_finished。

stu__1_finished.jpg

stu__2_finished.jpg

stu__3_finished.jpg

stu__4_finished.jpg

stu__5_finished.jpg

可以实现的方法有很多种:

方法一:for循环结合sed替换

  

方法二:ls结合awk,输出交给bash执行

  

实际执行的命令如下,以_finished作为分隔符,mv及变量 需要加双引号

  

方法三:rename改名(rename 需要安装)

方法四:for循环加变量部分截取

  

不使用echo也可以实现

  

更改后结果如下:

stu__1.jpg
stu__2.jpg
stu__3.jpg
stu__4.jpg
stu__5.jpg

小讯
上一篇 2025-06-13 08:13
下一篇 2025-04-28 20:38

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/146276.html