首页 / 知识
关于shell:是否有Unix实用程序在stdin之前添加时间戳?
2023-04-12 20:19:00

Is there a Unix utility to prepend timestamps to stdin?我最终使用Python为此编写了一个快速的小脚本,但是我想知道是否有一个实用程序可以将文本输入到每行的前面,在我的特定情况下是时间戳,您可以在其中输入文本。 理想情况下,使用方式如下:
(在您回答sed之前,我尝试过此操作:
但这只会在执行sed时对date命令执行一次评估,因此同一时间戳会错误地添加到每一行。)
来自moreutils的
要安装它:
可以尝试使用
您可能需要确保
如果awk显示错误,请尝试使用
注释,可以通过该链接获得,也可以在Debian
将给出的答案简化为最简单的答案:
在Ubuntu上,它们来自Expect-dev和moreutils软件包。
这个怎么样?
从您希望获得实时时间戳的角度来看,也许您想对日志文件或其他内容进行实时更新?也许
只是把它扔在那里:daemontools中有一对实用程序,称为tai64n和tai64nlocal,用于在时间戳记之前记录消息。 例:
Kieron的答案是迄今为止最好的答案。如果由于第一个程序正在缓冲它而遇到问题,则可以使用unbuffer程序:
大多数Linux系统默认安装了它。如果您需要自己构建它,则它是Expect包的一部分 http://expect.nist.gov 使用read(1)命令一次从标准输入中读取一行,然后使用date(1)以您选择的格式输出以日期开头的行。
我不是Unix专家,但我认为您可以使用
您可以执行此操作(使用gnu / sed):
例:
当然,您可以使用计划日期的其他选项。只需将 混合以上natevw和Frank Ch。的答案。艾格勒
它具有毫秒数,比每次调用外部
带有刷新和循环读取的替代版本:
这是我的awk解决方案(来自Windows / XP系统,该系统在C: bin目录中安装了MKS工具)。它的设计目的是将当前日期和时间以mm / dd hh:mm的形式添加到在读取每一行时已从系统中获取了该时间戳记的每一行的开头。当然,您可以使用BEGIN模式获取一次时间戳并将该时间戳添加到每条记录中(全部相同)。我这样做是为了将生成的日志文件标记为生成日志消息时带有时间戳的stdout。
其中"模式"是要在输入行中匹配的字符串或正则表达式(不带引号),如果希望匹配所有输入行,则为可选。 这也应该在Linux / UNIX系统上工作,只需摆脱C :\ bin \
当然,这假定命令" date"将您带到标准Linux / UNIX date display / set命令,而没有特定的路径信息(即,您的环境PATH变量已正确配置)。 caerwyn的答案可以作为子例程运行,这将阻止每行新的进程:
免责声明:我提出的解决方案不是Unix内置实用程序。 几天前我遇到了类似的问题。我不喜欢上述解决方案的语法和局限性,因此我很快在Go中组合了一个程序来为我完成工作。 您可以在此处检查该工具:preftime GitHub项目的"发行版"部分中有针对Linux,MacOS和Windows的预构建可执行文件。 该工具处理不完整的输出行,并且(从我的角度来看)具有更紧凑的语法。
这并不理想,但是我会分享它,以防它对某人有所帮助。
在OSX上使用
如果要毫秒:
但是请注意,在OSX上,date不会为您提供%N选项,因此您需要安装gdate(
如果您要附加的值在每一行都相同,请使用该文件启动emacs,然后:
Ctrl + 在文件的开头(以标记该位置),然后向下滚动到最后一行的开头(Alt +>将转到文件的末尾...这可能也涉及Shift键,然后按Ctrl + a转到该行的开头),然后: Ctrl + x r t 这是要在您刚刚指定的矩形(宽度为0的矩形)上插入的命令。
2008-8-21 6:45 PM 或任何您想添加的内容...然后,您将看到该文本添加到0宽度矩形内的每一行。 更新:我只是意识到您不希望使用相同的日期,所以这将无法工作...尽管您可以使用稍微复杂一些的自定义宏在emacs中执行此操作,但是仍然可以进行这种矩形编辑很高兴知道... |
最新内容
相关内容
python怎么循环输入
python怎么循环输入,培训,语句,条件,双数,表达式,详解,两者,命令,下面,次数,python中的循环语句,可使用for循环,或者while循环。两者的区别是,fopython如何判断输入是不是数字
python如何判断输入是不是数字,数字,异常,培训,字符,表示,字符串,不是,正则,方法,字母,python判断输入是不是数字的方法:在接收raw_input方法python如何输入平方根
python如何输入平方根,数字,培训,代码,平方根,方根,根号,以上,语言,实例,表示,python输入平方根的方法:平方根,又叫二次方根,表示为〔√ ̄〕,如:数学python脚本和网页的区别是什么
python脚本和网页的区别是什么,网站,培训,设计,通用,标准,平台,网页,语言,脚本,标记,python是一种计算机程序设计语言,一种面向对象的动态类型python键盘输入是什么
python键盘输入是什么,培训,标准,函数,字符串,结果,有所不同,表达式,结尾,两者,区别,python中获取键盘输入的函数是input(),在Python2和Pythonpython如何获取键盘输入
python如何获取键盘输入,培训,标准,函数,字符串,结果,引号,表达式,变量,脚本,结尾,python2中:raw_input函数raw_input()函数从标准输入读取一python怎么写个简单的python脚本
python怎么写个简单的python脚本,培训,代码,字符串,脚本,用户,函数,类型,内容,整数,示例,其实编写简单的Python脚本还是很容易的,比如下面我们python如何输入字符串
python如何输入字符串,培训,数据,字符串,字符,引号,中文,内容,源程序,比如说,也就是,简单地理解,字符串就是“一串字符”,也就是用引号内的任何python怎么多行输入
python怎么多行输入,异常,标准,培训,环境,设备,文件,函数,键盘,方式,语句,python中的Input()函数在输入时,遇到回车符,那么一次输入就结束了。python脚本语言
python脚本语言,代码,设计,情况,培训,语句,项目,基础,意外,异常,空格,Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被pythonpython是脚本语言吗?
pythonpython是脚本语言吗?,设计,培训,大规模,项目,软件,面临,开发者,语言,脚本语言,方法,Python是脚本语言。python是一种计算机程序设计语python新手必看之文本文件的输入输
python新手必看之文本文件的输入输出,培训,标准,数据,文件,对象,输入输出,新手,模式,功能,内容,Python具有基本的文本文件读写功能。Python的