如何批量重命名文件并将日期戳从 DD-MM-YYYY 转换为 YYYY-MM-DD?

如何批量重命名文件并将日期戳从 DD-MM-YYYY 转换为 YYYY-MM-DD?

我正在尝试重命名包含包含日期戳的文件的文件夹,如下所示:

string_DD-MM-YYYY_hhmm.pdf

到这种格式:

string_YYYY-MM-DD_hhmm.pdf

以便它们在按文件名排序时按日期排序。

示例:PB_KAZ_KtoNr_0463266665_01-02-2014_0341.pdf应该变成PB_KAZ_KtoNr_0463266665_2014-02-01_0341.pdf.

我找到了这个类似的问题但它是关于 DDMMYYYY 格式而不是 DD-MM-YYYY ,并且答案对于我的情况来说太复杂了。由于string内容和长度(24 个字符)始终相同,因此一个简单的命令就足够了,按位置拆分和重新组装字符串。

提前致谢!

答案1

使用 Perl 的重命名(独立命令):

rename -n 's/(.*)_(.*)-(.*)-(.*)_(.*.pdf)/$1_$4-$3-$2_$5/' *.pdf

如果一切看起来都很好,请删除-n

答案2

这是一种粗略的方法,尤其是在有很多文件的情况下,但最基本的 awk 方法是:

它假设文件夹中没有任何其他 pdf,除了 string_DD-MM-YYYY_hhmm.pdf 之外,并且 string_ 部分的长度为 24 个字符

cd到文件夹然后运行:

for i in *.pdf; do mv $i `\ls -1 $i | awk '{print substr ($0, 0, 24)}'``\ls -1 $i | awk -F[_.] '{print$(NF-1)}'| awk -F- '{print$3"-"$2"-"$1}'`.pdf; done

相关内容