批量修改文件


[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后面小括号

相关