Linux shell利用sed如何批量更改文件名详解

2019-01-16 23:14:01于海丽

用 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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对易采站长站的支持。

您可能感兴趣的文章:

详解linux下批量替换文件内容的三种方法(perl,sed,shell)linux中批量修改文件名的脚本代码Linux shell 之 提取文件名和目录名的一些方法总结Linux中用rename命令批量替换文件名方法实例