在bash中将时间戳插入流中

时间:2016-11-21 23:20:33

标签: bash sed timestamp

我有一个我在stdin上接收的数据流,我想在时间戳上添加时间戳。理想情况下,我想用当前的纪元秒替换新线的每一行

... | sed "s/$/$(date +' %s')"/无法正常工作,因为它只会根据命令评估日期命令。

我该怎么办?

2 个答案:

答案 0 :(得分:2)

取决于您的操作系统,您可以

  1. 使用ts命令: 这会将时间戳放在行的开头

    ... | ts '%s'
    
  2. 使用GNU awk

    ... | gawk '{print $0, systime()}'
    
  3. 或perl

    ... | perl -lpe '$_ .= " ".time'
    

答案 1 :(得分:0)

我无法将此标记为重复或评论,但请查看之前提出的相同问题:Is there a Unix utility to prepend timestamps to stdin?

从那里,您可以使用ts(必须通过apt-get install moreutils安装)或awk