用 find 命令来获取文件列表,再用 sed 命令配合正则表达式来修改文件名,这两个命令的结合几乎能完成所有常见的批量改名任务。
例如,将所有大于1M,且后缀为txt或jpg的文件,由形如 book_20170101.txt、image_20170101.jpg 的文件改名为 20170101-book.txt、20170101-image.jpg,代码如下:
| for file in `find . -size +1M -name "*_*.txt" -o -name "*_*.jpg"` do newfile=`echo $file | sed 's/([a-z]+)_([0-9]+)./2-1./'` mv $file $newfile done |
有关 find 命令的更多用法,可以参考 //www.jb51.net/article/108198.htm
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对易采站长站的支持。








