批量重命名日志文件从一种时间格式到另一种格式

时间:2014-11-18 20:13:48

标签: linux bash eggdrop

我正在寻找批量重命名由Eggdrop bot创建的近1,000个日志文件的方法。几年前,我不得不从头开始设置机器人,而忽略了正确设置日志格式,因此所有这些文件现在都具有以下格式:

channelname.log。%d%b%Y(channelname.log.14Jan2014)

我想重命名所有这些文件以匹配所有旧日志文件,格式为:

channelname.log。%Y%m%d(channelname.log.20140101)

我已经在eggdrop.conf文件中进行了更改,但是我想重命名所有较新的日志文件以匹配旧文件的格式。

这是在Linux shell上,所以某种bash命令是理想的。谢谢!

1 个答案:

答案 0 :(得分:2)

find . -type f -name '*.log.*[^0-9-]*' -print0 | while read -d '' -r logfile; do
    mv "${logfile}"  "${logfile/.log.*/.log.`date -d ${logfile#*.log.} +%Y-%m-%d`}"
done

假设它在区域设置date知道如何处理。