因此,我试图通过日志计算用户在 Teamspeak 3 服务器上的在线时间。日志格式类似于
2015-10-14 23:30:29.676932|INFO |VirtualServerBase| 1| client connected 'clientX'(id:XY) from IPx.IPx.IPx.IPx:PortX
2015-10-15 00:12:45.870381|INFO |VirtualServerBase| 1| client disconnected 'clientX'(id:XY) reason 'reasonmsg=leave'
.
我当然可以grep "client connected \|client disconnected"
用来过滤掉其他条目并添加| grep "(id:XY)"
到只看到用户 XY。如果我| cut -c 1-16
过去只看到时间和日期并过滤掉所有不必要的东西。
结果命令是cat *.log | grep "client connected\|client disconnected" | cut -c 1-16
. 之后,输出如下所示:
2015-10-02 14:12
2015-10-02 14:17
2015-10-06 14:18
2015-10-06 15:27
问题是:我如何计算连接和断开之间的时间并将它们添加到 shell 脚本中?