[root@lnmp02-svr tmp]# find ./ -type f -name "*finished*"|sed -r ‘s#(^.*)_finished(.*$)#mv & \1\2#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 & \1\2#g‘|bash
这是一道考题,批量修改文件名称。里面用了正则匹配。
find ./ -type f -name "*finished*"|sed -r ‘s#(^.*)_finished(.*$)#mv & \1\2#g‘
查找 当前目录 类型是文件 名字里包含*finished* sed显示出 #后的&代表匹配当前整个内容 ,\1前面小括号 ,\2后面小括号
原文:https://www.cnblogs.com/davidz/p/14633189.html