如何追加命令输出的时间?

时间:2015-02-09 14:33:36

标签: linux bash

我使用xev来调试窗口的x11事件。我可以使用grep过滤事件,例如:xev -id windowid | grep FocusIn。我想为上面的命令(date +"%T.%N")的每个输出添加时间。我需要知道每个事件发生的时间。可能吗 ?如何实现?

EDIT1

以下命令有效:

xev -id windowid | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'

但是使用grep没有输出:

xev -id windowid | grep FocusIn | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'

当我使用grep和ts时,也没有输出:

xev -id windowid | grep FocusIn | ts

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以通过ts命令管道输出,如果它在您的系统上可用,并且如果预先添加(而不是追加),则时间戳对您来说没问题。

否则您可以使用awk,如下所述:

Is there a Unix utility to prepend timestamps to stdin?