如何使用sed将日期添加到文件名

时间:2014-07-08 11:14:44

标签: unix sed rename

我需要sed行,将stroodle-EMAIL-MSG.mail重命名为stro{dd_mm_yyyy}.zip

是否能够做到这一点?

1 个答案:

答案 0 :(得分:0)

正如您在帖子的评论中所说的那样,您最好不要使用sed来执行此任务。

相反,请考虑使用UNIX date命令。假设您想要当前日期,并使用bash语法:

mv "stroodle-EMAIL-MSG.mail" \
   "stroodle{$(date +%d_%m_%Y)}.zip"

文件将重命名为stroodle{09_07_2014}.zip

如果您想使用其他日期,例如去年圣诞节那天:

mv "stroodle-EMAIL-MSG.mail" \
   "stroodle{$(date +%d_%m_%Y -d 'December 25 2013')}.zip"

这次您的文件将重命名为stroodle{25_12_2013}.zip (有关man date的{​​{1}}选项的可用字符串格式的详细信息,请参阅info date或更好的-d

现在,如果您真的必须使用date(也许您想在文本文件中更改此名称?),您可以使用以下内容:

sed

备注:为了更好地按日期对文件进行排序,您可以考虑将ISO 8601格式与sed "s/stroodle-EMAIL-MSG.mail/stro{$(date +%d_%m_%Y)}.zip/" input_file 而不是date +%F一起使用。我喜欢ISO 8601