Help parsing log from vertical to horizontal line

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support Help parsing log from vertical to horizontal line
# 1  
Old 02-26-2015
Help parsing log from vertical to horizontal line

Hi Expert,

i have log in attached (log.txt)

i want the log result become horizontal line :

Code:
recordOpeningTime,servedMSISDN,ratingGroup,datavolumeFBCUplink,datavolumeFBCDownlink
1502260153422B0800,196738930571,3,7946,2219
1502260153422B0800,196738930571,3,233,174
1502260153422B0800,196737136858,3,558,408
1502260153422B0800,196737136858,3,3901,7974
1502260153422B0800,196737136858,3,3706,1703
1502260153422B0800,196737136858,3,61,189
1502260153422B0800,196737136858,3,85855,16940
1502260153422B0800,196738639319,3,1129,3856
1502260153422B0800,196738639319,3,0,0
1502260153422B0800,196738639319,3,0,0
1502260153422B0800,196738639319,3,0,0
1502260153422B0800,196738639319,3,0,0
1502260153422B0800,196738639319,3,0,0
1502260153422B0800,196738813569,30,10682,13065
1502260153422B0800,196738813569,30,417,313
1502260153422B0800,196738813569,30,0,0
1502260153422B0800,196738813569,30,0,0
1502260153422B0800,196738813569,30,0,0
1502260153422B0800,196738813569,30,0,0
1502260153422B0800,196738813569,30,0,0

Can anybody help?
# 2  
Old 02-27-2015
This seems similar to an earlier thread you started: Change the vertical logs to horizontal line.

Can't you use what you learned from the suggestions given there to solve this problem?

What have you tried? What is failing in what you tried?
# 3  
Old 02-27-2015
a little bit different but still doesnt work.

Code:
awk '/recordOpeningTime \:/ {ts=$3}
     /servedMSISDN \:/ {print ts", "$3; ts="" }
     /ratingGroup \:/ {print ts", "$3; ts="" }
     /datavolumeFBCUplink \:/ {print ts", "$3; ts="" }
     /datavolumeFBCDownlink \:/ {print ts", "$3; ts="" }'

# 4  
Old 02-27-2015
Here is a slightly different approach that seems to work:
Code:
awk -F"'" '
BEGIN {	OFS = ","
	h[++hc] = "recordOpeningTime"
	h[++hc] = "servedMSISDN"
	h[++hc] = "ratingGroup"
	h[++hc] = "datavolumeFBCUplink"
	h[++hc] = "datavolumeFBCDownlink"
	for(i = 1; i <= hc; i++)
		printf("%s%s", h[i], (i == hc) ? ORS : OFS)
}
{	for(i = 1; i <= hc; i++)
		if($0 ~ h[i]) {
			d[i] = $2
			break
		}
	if(i == hc)
		for(i = 1; i <= hc; i++)
			printf("%s%s", d[i], (i == hc) ? ORS : OFS)
}' log.txt

If you want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk or nawk.

In addition to the output you said should be produced from your sample log.txt file, it also prints the output:
Code:
1502260153422B0800,196738877718,3,160,958
1502260158372B0800,196738640656,30,37880,1010880
1502260158372B0800,196738640656,30,0,0
1502260158372B0800,196738640656,30,0,0
1502260158372B0800,196738640656,30,0,0
1502260158372B0800,196738640656,30,0,0

Is there some reason why these lines should have been deleted from the output?
This User Gave Thanks to Don Cragun For This Post:
# 5  
Old 02-28-2015
Quote:
Originally Posted by Don Cragun
Is there some reason why these lines should have been deleted from the output?
Thank you Don.. its should be printed but i miss it.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Change the vertical logs to horizontal line

Hi, cat log EPC-SubsId: 3333 EPC-GrIds: RTGHUPA:1:15-11-2013T19:59,22-11-2013T19:59 EPC-GrIds: PrimaXGB_23:10 EPC-SubsId: 4444 EPC-GrIds: RTGHUPB:1:15-11-2013T19:59,22-11-2013T19:59 EPC-SubId: 5555 EPC-GrIds: RTGHUPC:1:15-11-2013T19:59,22-11-2013T19:59 EPC-SubsId: 6666... (1 Reply)
Discussion started by: justbow
1 Replies

2. Shell Programming and Scripting

How do i do the vertical to horizontal??

51009 8746 8912 17986 20315 24998 5368 38934 7805 8566 (4 Replies)
Discussion started by: nikhil jain
4 Replies

3. Shell Programming and Scripting

Script for parsing vertical log into horizontal

Hi, I have log like this : And i want the output like below : I have try using awk but doesn't work awk ' /ffff /{ts=$1} f && /SectorAntenna\=1/{sa1=$3} f && /SectorAntenna\=2/{sa2=$3} f && /SectorAntenna\=3/{sa3=$3} { s= ts "|" sa1 "|" sa2 "|" sa3 print s f=0 }' (7 Replies)
Discussion started by: justbow
7 Replies

4. Shell Programming and Scripting

Need perl or shell script to sort vertical lines to horizontal line in csv format

Need perl or shell script to sort vertical lines to horizontal line in csv format My file like below ------------------------- ================================================================================ PATH PINKY1000#I1-1-ZENTA1000-2#I7-1-ASON-SBR-UP-943113845 ... (4 Replies)
Discussion started by: sreedhargouda.h
4 Replies

5. Shell Programming and Scripting

change log vertical to horizontal lines

Hi, Need help unix command to change this : become this Anyone can help me?:wall: (2 Replies)
Discussion started by: justbow
2 Replies

6. UNIX for Dummies Questions & Answers

How to move vertical line to Horizontal...

How to move a vertical line to Horizontal line.....Can i use a tr command? code is: StudentID Java .Net C# I want to move this line like this: StudentID Java .Net C# Please use code tags! (3 Replies)
Discussion started by: Arsh10
3 Replies

7. UNIX for Dummies Questions & Answers

Horizontal to vertical

Hi, Silly question, if I have an excel file that looks something like this: ................. Subject 1 Subject 2 Subject 3 Subject 4 Fever..............13...........9.............23..........14 Headache.........2............12...........18..........23... (3 Replies)
Discussion started by: Xterra
3 Replies

8. Shell Programming and Scripting

Need help in changing vertical lines to horizontal line in a file

Hi, I have a file like below robert PREF: 3 AVAIL: henry PREF: 234 AVAIL: john PREF: 145,178 AVAIL: 123 matt PREF: 564,932 AVAIL: ten PREF: 389 AVAIL: kill (2 Replies)
Discussion started by: rocky1954
2 Replies

9. Shell Programming and Scripting

Draw a Horizontal and Vertical line on UNIX

I want to draw a horizontal and vertical line on Unix. Please suggest some solution. (11 Replies)
Discussion started by: allways4u21
11 Replies

10. UNIX for Dummies Questions & Answers

converting horizontal line to vertical line

how to use "tr" command to display horizontal line to vertical line for vertical to horizontal, the command is tr '\n' '\t' <inputfile but what is the command for horizontal to vertical Thanks Vasikaran (3 Replies)
Discussion started by: vasikaran
3 Replies
Login or Register to Ask a Question