You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为标准输出(stdout)的每一行添加时间戳?

给标准输出每一行添加时间戳的实用方案

嘿,这个需求我太懂了!当脚本输出一堆内容时,给每一行加上时间戳确实能帮你清晰追踪输出时序,下面几个方法亲测好用:

方法1:用ts命令(最简便)

ts是moreutils工具包中的小工具,专门用来给每行输出打时间戳,用起来超省心。

  • 先安装工具包:
    • Debian/Ubuntu系:sudo apt install moreutils
    • CentOS/RHEL系:sudo yum install moreutils
  • 基础用法:直接把命令输出通过管道传给ts就行
    # 默认格式:YYYY-MM-DD HH:MM:SS
    your_long_running_script.sh | ts
    
  • 自定义时间格式:比如只想显示时分秒,或者加个括号
    ping google.com | ts '[%H:%M:%S]'
    

方法2:用awk命令(无需额外安装)

如果不想装新工具,awk是系统自带的神器,完全能搞定:

  • 基础用法:
    your_command | awk '{print strftime("[%Y-%m-%d %H:%M:%S]"), $0}'
    
  • 要是想把错误输出(stderr)也加上时间戳,就把stderr重定向到stdout:
    your_command 2>&1 | awk '{print strftime("[%H:%M:%S]"), $0}'
    

注:strftime的格式参数和date命令的格式规则一致,你可以按需调整,比如%Y是年份,%H是24小时制小时数

方法3:写个复用的shell脚本

如果经常需要用,写个小脚本随时调用更方便:

  1. 创建脚本文件timestamper.sh:
    #!/bin/bash
    # 读取每一行并添加时间戳
    while IFS= read -r line; do
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] $line"
    done
    
  2. 赋予执行权限:
    chmod +x timestamper.sh
    
  3. 使用方式:
    python your_data_processing_script.py | ./timestamper.sh
    

你可以修改date '+...'里的格式串,改成自己喜欢的时间样式。

内容的提问来源于stack exchange,提问作者Skynot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 07:27:33