900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > linux重定向文件容加时间 linux – 如何在Bash中将stdout重定向到文件时添加时间戳?...

linux重定向文件容加时间 linux – 如何在Bash中将stdout重定向到文件时添加时间戳?...

时间:2019-03-11 03:32:21

相关推荐

linux重定向文件容加时间 linux  – 如何在Bash中将stdout重定向到文件时添加时间戳?...

我有一个程序(服务器),我正在寻找一种方法(脚本),将所有的stdout重定向(或更好地复制)到文件并为每个条目添加时间戳.

我做了一些研究,我能得到的最远的是得益于How to add timestamp to STDERR redirection.它重定向stdout但添加的时间戳是脚本完成的时间:

#!/bin/bash

./server | ./predate.sh > log.txt

predate.sh的代码:

#!/bin/bash

while read line ; do

echo "$(date): ${line}"

done

似乎退出程序后刷新服务器输出.(没有重定向它工作正常).此外,如果我尝试在提到的线程中的给定示例使用predate.sh,它完美地工作.我知道在主程序中添加时间戳很容易,但我宁愿避免编辑它的代码.

解决方法:

我最近需要的是:在串行控制台(picocom)中接收日志消息,将它们打印到终端和文件并预先设置日期.

我现在使用的是什么.像这样:

picocom -b 115200 /dev/tty.usbserial-1a122C | awk '{ print strftime("%s: "), $0; fflush(); }' | tee serial.txt

> picocom的输出通过管道传输到awk

> awk预置日期(%s选项将时间转换为自1970-01-01 00:00:00 UTC以来的秒数 – 或使用%c作为人类可读的格式)

> fflush()flushes any buffered output在awk中

>用管道输送到T恤,将其转移到文件中. (你可以找到一些关于tee here的东西)

标签:bash,linux,redirect

来源: https://codeday.me/bug/0928/1827896.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。