每次将带有awk的时间戳放在文件的开头
每次调用 awk 命令时,我都试图将时间戳放在文件的开头
我有一个包含一些命令的脚本,我希望在运行命令时将该事件放入带有时间戳的日志文件中,但我希望该行每次都位于日志文件的开头。
使用 echo 我可以做到,但它在文件末尾
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