2013-08-16 41 views
0

我想從一個文件,如下時間戳提取數據:grep的發現,當串改變/創建時間吧

20110103T000204000 
20110103T000229000 
20110103T000253000 
20110103T000258000 
20110103T000330000 
20110103T000523000 
20110103T000536000 

四個大字後,t爲HHMM小時和分鐘。如何在下列情況下提取行:

  1. 這4個字符已更改。 或
  2. 更困難的(我猜)在 「BAR」 的變化 - 無論是每5分鐘,10分鐘或1小時等

因此,對於1,我能得到:

20110103T000204000 
20110103T000330000 
20110103T000523000 

和2:

20110103T000004000 
20110103T000530000 
20110103T001023000 
20110103T001504000 
20110103T002030000 
20110103T002523000 
+0

舉例說明你的條件? –

回答

2

grep對你來說已經不夠了。這是一個應該幫助的Perl程序的開始。

use warnings; 
use strict; 

my $current_datetime = ''; 
while (my $line = <>) { 
    chomp $line; 
    my $datetime = substr($line, 0, 13); 
    if ($datetime ne $current_datetime) { 
     print $line, "\n"; 
     $current_datetime = $datetime; 
    } 
} 

保存,作爲whatever.pl,並執行它作爲

perl whatever.pl yourinputfile 

,你應該得到的輸出

20110103T000204000 
20110103T000330000 
20110103T000523000 

這是否給你一個良好的開端?

相關問題