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

Unix下如何让终端省略时间戳列输出,同时带时间戳写入文件?

解决方案

你只需要在原命令的基础上,给tee的输出再追加一个管道,用来移除每行的第一列时间戳——这样终端就只会显示原始脚本的输出内容,而output.txt依然会保留带时间戳的完整数据。

方法一:用cut快速处理(推荐)

这是最简洁的实现方式,指定空格为字段分隔符,直接提取从第二字段到行尾的内容:

./small_script.sh | while read R; do echo "$(date +%s) $R"; done | tee output.txt | cut -d' ' -f2-

方法二:用awk处理复杂空格场景

如果你的脚本输出里存在连续空格,awk的处理会更稳妥,它会自动忽略字段间的多余空格:

./small_script.sh | while read R; do echo "$(date +%s) $R"; done | tee output.txt | awk '{ $1 = ""; print substr($0, 2) }'

效果验证

  • output.txt文件中会完整保留带时间戳的内容,和你之前的结果一致:
    1526635998 Darwin
    1526635998 17.4.0
    1526635998 Darwin C02V41QWHV2R 17.4.0 Darwin Kernel Version 17.4.0 ..
    1526635998 /Users/home/duraja
    
  • 终端只会显示去掉时间戳后的原始输出:
    Darwin
    17.4.0
    Darwin C02V41QWHV2R 17.4.0 Darwin Kernel Version 17.4.0 ..
    /Users/home/duraja
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:26:35