我想将我的手机屏幕截图重命名为
Screenshot_2020-08-06-16-13-43-731_com.tclhz.gallery.jpg
:2020-08-06.jpg
关于文件名的固定部分,我想对其进行概括,这样我就可以删除 N 个第一个字符和 N 个最后一个字符。
该怎么办呢?
谢谢!
答案1
您可以使用shell 字符串操作的功能。假设您的文件名存储在变量中name
,以下两行将删除第一个下划线之前的所有内容,然后删除以该-hh-mm-ss
部分开头的所有内容。然后手动重新添加文件扩展名。
newname="${name#*_}"
newname="${newname%-??-??-??-*}.jpg"
然后,您可以发出命令
mv "$name" "$newname"
重命名文件。
例子:
$ name="Screenshot_2020-08-06-16-13-43-731_com.tclhz.gallery.jpg"
$ newname="${name#*_}"; newname="${newname%-??-??-??-*}.jpg"; echo "$newname"
2020-08-06-16.jpg
为了处理当前目录的全部内容:
for name in *.jpg
do
newname="${name#*_}"
newname="${newname%-??-??-??-*}.jpg"
mv "$name" "$newname"
done