解析格式错误的日志文件?

标签 parsing theory logging

我正在处理一些格式很差的日志文件,列分隔符是一个(经常)出现在字段中的项目,它没有被转义。例如:

sam,male,september,brown,blue,i like cats, and i like dogs

在哪里:
name,gender,month,hair,eyes,about

如您所见,about 包含列分隔符,这意味着分隔符的单个解析将不起作用,因为它将 about me 分成两个单独的列。现在用聊天系统想象一下......你可以想象我确定的问题。

那么,理论上解决这个问题的最佳方法是什么?我不是在寻找特定于语言的实现,而是更多指向正确方向的一般指针,或者关于其他人如何解决它的一些想法......而无需手动完成。

编辑:

我应该澄清一下,我的实际日志处于更糟糕的状态。到处都有这些带有分隔符的字段,我找不到任何模式。

最佳答案

如果只有最后一列有未转义的逗号,那么大多数语言对字符串拆分的实现可以限制拆分的数量,例如在 Python 中 s.split(',',5)
如果您想将文件解析为 CSV(逗号分隔值)解析器,那么我认为最好的方法是运行一个修复程序,在将其传递给 csv 解析器之前进行正确的转义。

关于解析格式错误的日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3951369/

相关文章:

performance - 对于具有 N 个线程的并行算法,性能增益是否可以超过 N?

logging - 如何让fail2ban读取json docker日志

java - 关于trunk的svn问题

python - 如何临时更改 kubernetes pod 的环境变量?

c# - 为什么尾调用优化需要操作码?

php json解析对象

r - 在 R 中将字符串转换为序列

c - 尽管行与搜索模式不匹配,sscanf 仍返回 1

c - 这些C指针操作会不会出问题?

parsing - LALR解析器生成器实现问题