2012-07-17 47 views
1

我有一個文件:貓文件中找到時期,然後時代轉換爲日期

....1342477599376 
    1342479596867 
    1342480248580 
    1342480501995 
    1342481198309 
    1342492256524 
    1342506099378.... 

這些線路...意味着各種字符。我想閱讀與貓該文件(這是必要的,我需要與),並讓這些線,sed命令,比我想的歷元日期轉換......

cat myfile.log | sed '...*//' | sed 's/...*//' | date -d @$1 

不幸的是,這是行不通的。

回答

1

的一種方法,使用sed

cat file.txt | sed "s/^.*\([0-9]\{13\}\).*/date -d @\1/" | sh 

結果:

Thu Jun 4 14:16:16 EST 44511 
Sat Jun 27 17:07:47 EST 44511 
Sun Jul 5 06:09:40 EST 44511 
Wed Jul 8 04:33:15 EST 44511 
Thu Jul 16 05:58:29 EST 44511 
Sat Nov 21 05:42:04 EST 44511 
Fri Apr 29 10:56:18 EST 44512 

HTH

+0

謝謝。在我看來,它正在工作。任何其他方式? – czupe 2012-07-17 12:26:36

+2

稍有不同,使用日期的-f選項:'cat file.txt | sed「s /^.* \([0-9] \ {13 \} \)。*/@ \ 1 /」|日期-f -' – chepner 2012-07-17 12:41:14

+0

@chepner,感謝您的提示! – Steve 2012-07-17 12:58:11

0

這是類似的解決方案,但它會發現流中的時間戳

cat test.txt | sed 's/^/echo "/; s/\([0-9]\{13\}\)/`date -d @\1`/; s/$/"/' | bash