批量修改文件

[root@lnmp02-svr tmp]# find ./ -type f -name "*finished*"|sed -r 's#(^.*)_finished(.*$)#mv & 12#g'
mv ./stu_102999_5_finished.jpg ./stu_102999_5.jpg
mv ./stu_102999_4_finished.jpg ./stu_102999_4.jpg
mv ./stu_102999_3_finished.jpg ./stu_102999_3.jpg
mv ./stu_102999_1_finished.jpg ./stu_102999_1.jpg
mv ./stu_102999_2_finished.jpg ./stu_102999_2.jpg
[root@lnmp02-svr tmp]# find ./ -type f -name "*finished*"|sed -r 's#(^.*)_finished(.*$)#mv & 12#g'|bash

这是一道考题,批量修改文件名称。里面用了正则匹配。

find ./ -type f -name "*finished*"|sed -r 's#(^.*)_finished(.*$)#mv & 12#g'

查找  当前目录 类型是文件 名字里包含*finished* sed显示出 #后的&代表匹配当前整个内容 ,1前面小括号  ,2后面小括号

原文地址:https://www.cnblogs.com/davidz/p/14633189.html