将多行日志文件转换为CSV(Converting multi

编程入门 行业动态 更新时间:2024-10-24 14:27:57
将多行日志文件转换为CSV(Converting multi-line log file to CSV)

我有一个如下所示的文件:

---------------------------------------- #Timestamp: 4/11/2013 12:00:48 AM #Title: MDS error #Category: Errors ---------------------------------------- #Timestamp: 4/11/2013 12:03:27 AM #Title: MDS error #Category: Errors ---------------------------------------- #Timestamp: 4/11/2013 12:05:39 AM #Title: MDS error #Category: Errors ----------------------------------------

我需要将其转换为CSV文件,如下所示:

4/11/2013 12:00:48 AM,MDS error,Errors 4/11/2013 12:03:27 AM,MDS error,Errors 4/11/2013 12:05:39 AM,MDS error,Errors

需要做一些命令行(awk / sed)? 因为我有一系列需要转换为CSV的文件。

I have file which looks like following:

---------------------------------------- #Timestamp: 4/11/2013 12:00:48 AM #Title: MDS error #Category: Errors ---------------------------------------- #Timestamp: 4/11/2013 12:03:27 AM #Title: MDS error #Category: Errors ---------------------------------------- #Timestamp: 4/11/2013 12:05:39 AM #Title: MDS error #Category: Errors ----------------------------------------

I need to convert it to CSV file which looks like this:

4/11/2013 12:00:48 AM,MDS error,Errors 4/11/2013 12:03:27 AM,MDS error,Errors 4/11/2013 12:05:39 AM,MDS error,Errors

Need something being done as a command line (awk/sed)? since I have a series of files like this one which need to be converted to CSV.

最满意答案

awk -F: '/^#Timestamp/{line=$2","}/^#Title/{line=line""$2}/^#Category/{print line","$2;}' your_file

测试:

> cat temp ---------------------------------------- #Timestamp: 4/11/2013 12:00:48 AM #Title: MDS error #Category: Errors ---------------------------------------- #Timestamp: 4/11/2013 12:03:27 AM #Title: MDS error #Category: Errors ---------------------------------------- #Timestamp: 4/11/2013 12:05:39 AM #Title: MDS error #Category: Errors ---------------------------------------- > awk -F: '/^#Timestamp/{line=$2","}/^#Title/{line=line""$2}/^#Category/{print line","$2;}' temp 4/11/2013 12, MDS error, Errors 4/11/2013 12, MDS error, Errors 4/11/2013 12, MDS error, Errors

如果它适用于OP,则为较短的解决方案:

awk -F: '/^#/{line=line","$2}/^-/{print substr(line,3);line="";}' your_file awk -F: '/^#Timestamp/{line=$2","}/^#Title/{line=line""$2}/^#Category/{print line","$2;}' your_file

Tested:

> cat temp ---------------------------------------- #Timestamp: 4/11/2013 12:00:48 AM #Title: MDS error #Category: Errors ---------------------------------------- #Timestamp: 4/11/2013 12:03:27 AM #Title: MDS error #Category: Errors ---------------------------------------- #Timestamp: 4/11/2013 12:05:39 AM #Title: MDS error #Category: Errors ---------------------------------------- > awk -F: '/^#Timestamp/{line=$2","}/^#Title/{line=line""$2}/^#Category/{print line","$2;}' temp 4/11/2013 12, MDS error, Errors 4/11/2013 12, MDS error, Errors 4/11/2013 12, MDS error, Errors

A shorter solution if its ok for the OP:

awk -F: '/^#/{line=line","$2}/^-/{print substr(line,3);line="";}' your_file

更多推荐

本文发布于:2023-08-07 10:00:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1463804.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:转换为   文件   日志   将多行   Converting

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!