1

私は次のファイルを持っています:

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

これらの行...はさまざまな文字を意味します。エポックを日付に変換したいのではなく、このファイルをcatで読み(それを行う必要があることが不可欠です)、sedコマンドでこれらの行を取得したいと思います...

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

残念ながら、これは機能しません。

4

2 に答える 2

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

于 2012-07-17T12:17:02.790 に答える
0

これは同様の解決策ですが、ストリームでタイムスタンプを見つけます

cat test.txt | sed 's/^/echo "/; s/\([0-9]\{13\}\)/`date -d @\1`/; s/$/"/' | bash
于 2017-01-13T07:52:24.020 に答える