我目前有一个在RSYSLOG.conf中启用RSYSLOG_FileFormat的系统。我不允许更改系统格式,所以我正在尝试找到一个变通方法,使我能够将日志文件(在这种情况下为/var/log/messages(的stdout输出查看为下面提到的所需时间戳格式。原因是对我来说,快速浏览不需要那么高精度的日志文件要容易得多。非常感谢您的建议!
示例当前输出时间戳:
2020-12-17T19:05:34.118891+00:00
期望输出:
Dec 12 2020 19:05:34
使用awk
和两个阵列:
awk 'BEGIN{m[10]="Oct"; m[11]="Nov"; m[12]="Dec"}
{
# split first field from current row ("$1")
# (here: "2020-12-17T19:05:34.118891+00:00") with
# field separator "T", ".", and "-" in five parts
# to array "array"
split($1, array, "[T.-]")
# rebuild first field from current row with elements of array "array"
$1=sprintf("%s %s %s %s %s", m[array[2]], array[3], array[1], array[4], $2)
# output complete current row
print
}' /var/log/messages
作为一行:
awk 'BEGIN{m[10]="Oct"; m[11]="Nov"; m[12]="Dec"} {split($1,array,"[T.-]"); $1=sprintf("%s %s %s %s %s", m[array[2]],array[3],array[1],array[4],$2); print}' /var/log/messages
请完成自己的数组m
。