这里以其中一个文件名为例。
2017-11-09-23.00.19-CookingDoughnuts.txt
重命名为
CookingDoughnuts-2017-11-09-23.00.19.txt
我需要对 1000 个文件进行批量操作,所以这是一个脚本,我遇到的问题是实际的重命名位。但如果它使发布解决方案更容易,可以提供完整的脚本。
我可以说每个文件的日期格式都相同,因此第四个破折号符号始终是文件名第一部分和第二部分的分隔符。但实际日期和时间会有所不同,文件名的文本部分也会有所不同。
不需要在新文件名中重写完整的日期和时间戳,因此在此示例中,以下内容就可以了。
CookingDoughnuts-2017-11-09-00.00.00.txt
小时、分钟、秒可以全部为00,但日期必须完整。
答案1
fname="2017-11-09-23.00.19-CookingDoughnuts.txt"
ext="${fname##*.}"
name="${fname%.*}"
pref="${name#*-*-*-*-}"
suff="${name%-$pref}"
newfname="$pref-$suff.$ext"
echo "$newfname"