Datetime to epoch conversion

前端 未结 3 1400
野性不改
野性不改 2021-01-14 03:28

I have a bash question (when using awk). I\'m extracting every single instance of the first and fifth column in a textfile and piping it to a new file with the following cod

3条回答
  •  梦谈多话
    2021-01-14 03:53

    Using GNU awk

    Input

    $ cat f
    Timestamp                 Stream     Status     Seq         Loss Bytes    Delay
    17/02/01.10:58:25.212577  stream_0     OK      80281          0  1000     38473
    17/02/01.10:58:25.213401  stream_0     OK      80282          0  1000     38472
    17/02/01.10:58:25.215560  stream_0     OK      80283          0  1000     38473
    17/02/01.10:58:25.216645  stream_0     OK      80284          0  1000     38472
    

    Output

    $ awk '
    BEGIN{cyear = strftime("%y",systime())}
    function epoch(v,       datetime){
        sub(/\./," ",v);
        split(v,datetime,/[/: ]/); 
        datetime[1] = datetime[1] <= cyear ? 2000+datetime[1] : 1900+datetime[1];
        return mktime(datetime[1] " " datetime[2] " " datetime[3] " " datetime[4]" " datetime[5]" " datetime[6])
    }
    /stream_0/{
        print epoch($1),$5
    }' f
    
    
    
    1485926905 0
    1485926905 0
    1485926905 0
    1485926905 0
    

    To write to new file just redirect like below

    cut -f4 test170201.rawtxt | awk '
    BEGIN{cyear = strftime("%y",systime());}
    function epoch(v,       datetime){
        sub(/\./," ",v);
        split(v,datetime,/[/: ]/); 
        datetime[1] = datetime[1] <= cyear ? 2000+datetime[1] : 1900+datetime[1];
        return mktime(datetime[1] " " datetime[2] " " datetime[3] " " datetime[4]" " datetime[5]" " datetime[6])
    }
    /stream_0/{
        print epoch($1),$5
    }'  > testLogFile.txt
    

提交回复
热议问题