타임 스탬프 목록을 피드로 제공합니다.
#!/usr/bin/perl
use strict;
use warnings;
use Time::Piece;
while ( my $ts = <DATA> ) {
chomp ( $ts );
my $t = Time::Piece->new();
print $t->epoch, " ", $t,"\n";
}
__DATA__
1442039711
1442134211
1442212521
이 결과는 다음과 같습니다.
1442039711 Sat Sep 12 07:35:11 2015
1442134211 Sun Sep 13 09:50:11 2015
1442212521 Mon Sep 14 07:35:21 2015
특정 출력 형식을 원하면 다음과 같이 사용할 수 있습니다 strftime
.
print $t->epoch, " ", $t->strftime("%Y-%m-%d %H:%M:%S"),"\n";
파이프에서 하나의 라이너로 바꾸는 것 :
perl -MTime::Piece -nle '$t=Time::Piece->new($_); print $t->epoch, " ", $t, "\n";'
그러나 아마도 대신 File::Find
모듈 을 사용하고 대신 펄에서 모든 일을하는 것이 좋습니다. 자르기 전에 디렉토리 구조의 예를 제시하면 예를 들어 보겠습니다. 그러나 다음과 같습니다.
#!/usr/bin/env perl
use strict;
use warnings;
use Time::Piece;
use File::Find;
sub print_timestamp_if_dir {
#skip if 'current' item is not a directory.
next unless -d;
#extract timestamp (replicating your cut command - I think?)
my ( $timestamp ) = m/.{3}(\d{9})/; #like cut -c 3-12;
#parse date
my $t = Time::Piece->new($timestamp);
#print file full path, epoch time and formatted time;
print $File::Find::name, " ", $t->epoch, " ", $t->strftime("%Y-%m-%d %H:%M:%S"),"\n";
}
find ( \&print_timestamp_if_dir, "." );
Fri Oct 2 05:35:28 47592
)