查找文件名错误的日期文件

pol*_*o12 2 ruby python bash perl awk

我有一个目录,其文件的名称很常见,后缀为日期增加.

一个例子是:

REUTERS.FH_lbm_dump.20120905 
Run Code Online (Sandbox Code Playgroud)

代表9月5日.

这些文件应该在第二天的前几分钟创建,例如上面的文件应该是在9月6日00:01创建的.

但是,由于文件名生成的一些错误,应用程序一直在正确地保存它们.因此,在9月5日00:16创建的文件的后缀为20120905,即文件名为1天太迟了.

ls -h显示错误命名的输出:

2012-09-05 00:16 FH_lbm_dump.20120905
Run Code Online (Sandbox Code Playgroud)

因此,检测这个的逻辑将查看文件名,提取日期,如果它等于文件时间戳,那么它将是正数.

我们如何在Bash/Perl/Python中执行此操作?

Rod*_*uis 5

我不会解决你的整个问题,但我会给你一个开始的地方.其余的由你决定.

#!/bin/bash

# loop through all filenames in current dir
for filename in *; do

    # How to extract the date from the file name
    date_from_file=${filename:(-8)}

    # How to get the file's modification date in the same format
    date_modified=$(stat -c %y "$filename" | cut -d ' ' -f1 | sed 's/-//g')

    # test for inequality
    if [ $date_from_file -ne $date_modified ]; then

        ... # do your thing

    fi

done
Run Code Online (Sandbox Code Playgroud)