如何使用awk将一个时间戳记录文件按天拆分成多个文件

3

我有一个很大的日志文件,涉及几年的时间,看起来像这样:

[2017-02-16T15:59+02:00] some log data
[2017-02-17T16:03+02:00] some other log data
[2017-02-17T16:05+02:00] yet another log data

我希望将其拆分为单独的文件。每个文件应包含单日内的所有消息。文件名应类似于log-2017-02-16.txt

我做了一些研究,发现了一些类似的问题,但我没有awk的经验,无法将答案翻译成我所需的内容。


类似这样的编程内容:awk -F'[]T[]' '{print > "log-"$2".txt"}' input_file - Jose Ricardo Bustos M.
1个回答

4
你可以使用以下awk命令实现此功能:
awk -F '[\\[T]' '{print > "log-" $2 ".txt"}' file
  • -F '[\\[T]' 将输入字段分隔符设置为[T
  • "log-" $2 ".txt"将格式化所需的文件名
  • print > ..将每个记录重定向到文件中

1
从这里得到了基本的想法,并从另一个地方结合了Nginx格式的分隔符。谢谢 :) - Meow Kim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接