有关重命名,sed/rename/basename
Posted luoqi302331
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关重命名,sed/rename/basename相关的知识,希望对你有一定的参考价值。
[[email protected] luoqi]# ls
luoqi01_find.txt luoqi03_find.txt luoqi05_find.txt luoqi07_find.txt luoqi09_find.txt
luoqi02_find.txt luoqi04_find.txt luoqi06_find.txt luoqi08_find.txt luoqi10_find.txt
目标把以上所有文件名的_find去掉,并且.txt结尾改为.jpg结尾
方法1,sed
[[email protected] luoqi]# ls *.txt | sed -r ‘s/^(.*)_find.*$/mv & 1.jpg/g‘
mv luoqi01_find.txt luoqi01.jpg
mv luoqi02_find.txt luoqi02.jpg
mv luoqi03_find.txt luoqi03.jpg
mv luoqi04_find.txt luoqi04.jpg
mv luoqi05_find.txt luoqi05.jpg
mv luoqi06_find.txt luoqi06.jpg
mv luoqi07_find.txt luoqi07.jpg
mv luoqi08_find.txt luoqi08.jpg
mv luoqi09_find.txt luoqi09.jpg
mv luoqi10_find.txt luoqi10.jpg
最后加一个 | bash
ls *.txt | sed -r ‘s/^(.*)_find.*$/mv & 1.jpg/g‘ | bash
此方式的中心思想,把命令列出来
方法2,rename
rename "_find.txt" ".jpg" *
rename "_find.txt" ".jpg" luoqi01* //后面是通配符,可以过滤修改文件名的文件
basename
basename /root/luoqi/luoqi01.jpg
luoqi01.jpg //结果只保留了最后的文件名,前面的路径都干掉了,用于特定脚本
basename /root/luoqi/luoqi01.jpg .jpg
luoqi01 //.jpg也干掉了,另一个用法
dirname
dirname /root/luoqi/luoqi01.jpg
/root/luoqi //作用是只保留目录
以上是关于有关重命名,sed/rename/basename的主要内容,如果未能解决你的问题,请参考以下文章
如何编写迁移以使用 ManyToManyField 更改模型的主键