エポック時間を取り、新しい列として追加

エポック時間を取り、新しい列として追加

UTCタイムスタンプを含むタブで区切られた次の入力ファイルがあります。新しい起源時間を計算し、新しい列として追加するには?このファイルは、60MM以上のラインを含む大容量ファイルです。

a   b
0   2020-03-03 15:46:52
1   2020-03-02 11:05:17

出力:

a   b                   c  
0   2020-03-03 15:46:52 1583279212
1   2020-03-02 11:05:17 1583175917

ベストアンサー1

GNUを使用awkしてMK時間:

awk '
  BEGIN{ FS=OFS="\t" }
  FNR==1{ print $0, "c"; next }
  {
    split($2, a, /[ :-]/)
    print $0, mktime(a[1]" "a[2]" "a[3]" "a[4]" "a[5]" "a[6], 1)
  }
' file
  • タブ文字を入力および出力フィールド区切り文字として使用
  • cタイトル行に追加
  • a:スペース文字を区切り文字として2番目のフィールドを配列に分割し、-UTCフラグを使用してタイムスタンプを印刷します。

出力:

a       b       c
0       2020-03-03 15:46:52     1583250412
1       2020-03-02 11:05:17     1583147117

おすすめ記事