在 SunOS 5.10 上验证文件中的日期



我有一个文件,其中包含以下格式的日期列表:yyyymmddhhmmss

20150608141617
20150608141345
20150608141649
20150608141506
20150608141618
20150608141545

想要验证这些日期的正确性,以防在上一个过程中生成过程中出现错误。

正确性意味着没有空格,长度为 14 个字符,日期有效,即没有像 20151508141545 这样的日期。

这在 perl 或 bash 中可能吗?

以下内容将完成您需要的操作,使用快速检查长度,然后使用内置Time::Piece模块来验证正确性。

#!/usr/bin/perl
use warnings;
use strict;
use Time::Piece;
for my $entry (<DATA>){
    chomp $entry;
    next if length($entry) > 14;
    my $date;
    eval {
        $date = Time::Piece->strptime($entry, "%Y%m%d%H%M%S");
    };
    if ($@){
        next;
    }
    print "$daten";
}
__DATA__
20150608141617
20152525252525
201506081413454
20150608141649
20150608141506
20150608141618
20150608141545

若要将此代码更改为从文件读取,请在 for() 循环上方编写:

open my $fh, '<', 'filename.txt'
  or die "Can't open the file: $!";

然后在for()循环中,将<DATA>更改为<$fh>并删除__DATA__及其下的所有内容。

相关内容

  • 没有找到相关文章

最新更新