bash - 每次将带有 awk 的时间戳放在文件的开头
问题描述
每次调用 awk 命令时,我都试图将时间戳放在文件的开头
我有一个带有一些命令的脚本,我希望在运行命令时将该事件放入带有时间戳的日志文件中,但我希望该行每次都位于日志文件的开头。
用回声我可以做到,但它在文件末尾
echo "$(date +%d/%m/%Y) - $(date +%T)" ' - Script event 1' >> log.txt
我尝试使用 awk 但我无法打印日期时间
awk -i inplace 'BEGINFILE{print "$(date +%d/%m/%Y) - $(date +%T) - Script event 1"}{print}' log.txt
所以我想要这样的东西
awk -i inplace 'BEGINFILE{print "$(date +%d/%m/%Y) - $(date +%T) - Script event 1"}{print}' log.txt
(......
some commands
......)
awk -i inplace 'BEGINFILE{print "$(date +%d/%m/%Y) - $(date +%T) - Script event 2"}{print}' log.txt
(......
some commands
......)
awk -i inplace 'BEGINFILE{print "$(date +%d/%m/%Y) - $(date +%T) - Script event 3"}{print}' log.txt
我的输出 log.txt 是
01/01/2021 - 16:50:05 - Script event 3
01/01/2021 - 16:52:15 - Script event 2
01/01/2021 - 16:54:25 - Script event 1
解决方案
使用 GNU awk for-i inplace
和 time 函数,用于strftime()
在文件开头添加时间戳。
awk -i inplace 'BEGINFILE{print strftime("%d/%m/%Y - %T") " - Script event 1"}{print}' log.txt
推荐阅读
- macros - nom 的 "$i" 宏参数从何而来?
- elasticsearch - 使用 go 在 elasticsearch 中进行大规模更新
- java - 在 Criteria API 中按目标加入
- r - 使用函数 filter() 计算移动平均值时出现“无适用方法”错误
- vba - 以编程方式插入构建基块时出现自动化错误 Word 2016
- javascript - 手动更新 redux 状态时更改了 redux 状态引用
- sql-server - 同一张表上分组行的差异和百分比变化
- css - Angular6 - 如何根据移动设备和浏览器改变 .css 类的宽度
- html - 如何最小化 html 表格中的列宽?
- sql-server - 在表值函数中声明变量