【发布时间】:2016-04-24 02:23:06
【问题描述】:
我有一堆这种格式的文件:
blabla.log.YYYY.MM.DD
YYYY.MM.DD 类似于 (2016.01.18)
我有很多文件夹,每个文件夹大约有 1000 个文件,所以我想要一个简单的脚本来重命名它们。我想将它们重命名为
blabla.log
所以基本上,我只是在最后去掉日期。这是我所拥有的:
for f in [a-zA-Z]*.log.[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]; do
mv -v $f ${f#[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]};
done
这个脚本输出这个:
mv: `blabla.log.2016.01.18' and `blabla.log.2016.01.18' are the same file
更多信息:
- 我在 Windows 上,但我在 gitbash 中运行此脚本
- 由于某种原因,我的 gitbash 无法识别“重命名”命令
- 一些正则表达式模式(如
[0-9]{4}似乎不起作用)
我真的很迷茫。谢谢。
编辑:我需要重命名每个末尾有日期且来自:*.log.2016.01.18 的文件。他们都需要保留原来的名字。应该改变的只是删除日期。
【问题讨论】:
-
要全部重命名为
blabla.log???请准确地说出您的需求。 -
${f%.[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]}: 额外的.和%而不是# -
非常感谢,正如我所需要的那样工作。
标签: regex shell rename git-bash