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中执行此操作?
我不会解决你的整个问题,但我会给你一个开始的地方.其余的由你决定.
#!/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)