Bash循环以人格式重命名包含空格和日期的文件

时间:2017-06-09 21:38:17

标签: bash

我有很多日志文件名为" Mon,May 22,2017 .log"我希望将它们重命名为典型的日期格式(yyyy-mm-dd.log)。现在,我将非常乐意接受yyyy-mmm-dd.log。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

for i in *.log; do mv "$i" "$(awk -F '[\ ,.]' '{print $6 "-" $3 "-" $4}' <<< "$i")".log;done

但是,当然可以更好地解析使用的日期格式。

答案 1 :(得分:0)

在您选择的文件夹中,您可以尝试以下内容:

oTree.onItemExpanderPressed(oTree.getItems()[1], true)

答案 2 :(得分:0)

所以我尝试了几个不同的想法,但最终制作了一个实际上对我更好的小脚本,因为除了重命名我之外,还需要做一些其他的事情来消毒我的文件。

脚本是:

FILENAME=$(basename "$1")
FILENAME="${FILENAME%.*}"
NEWNAME=$(date -d "$FILENAME" +%Y%m%d)
mv "$1" "$NEWNAME".log

然后我使用此命令运行脚本:

find . -iname "*.log" -exec ./test.sh {} \;

可能不是最优雅或最有效的答案,但它有效。

相关问题