Sponsored Content
Homework and Emergencies Emergency UNIX and Linux Support Help parsing log from vertical to horizontal line Post 302936765 by Don Cragun on Friday 27th of February 2015 12:37:40 PM
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:
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
makedbm(8yp)															      makedbm(8yp)

Name
       makedbm - make a yellow pages dbm file

Syntax
       makedbm [ -i yp_input_file ] [ -o yp_output_name ] [ -d yp_domain_name ] [ -m yp_master_name ] infile outfile
       makedbm [ -u dbmfilename ]

Description
       The command takes the file specified by the argument infile and converts it to a pair of files in format, namely and Each line of the input
       file is converted to a single record.  All characters up to the first tab or space form the key, and the rest of the line is defined as the
       key's  associated data.	If a line ends with a backslash (), the data for that record is continued onto the next line.	It is left for the
       clients of the yellow pages to interpret the number sign (#); does not treat it as a comment character.	The  infile  parameter	can  be  a
       hyphen (-), in which case reads the standard input.

       The  command  is  meant	to  be	used in generating files for the yellow pages service.	The command generates a special entry with the key
       yp_last_modified, which is the date of infile.

Options
       -i     Create a special entry with the key yp_input_file.

       -o     Create a special entry with the key yp_output_name.

       -d     Create a special entry with the key yp_domain_name.

       -m     Create a special entry with the key yp_master_name.  If no master host name is specified, yp_master_name will be set  to	the  local
	      host name.

       -u     Undo a file.  That is, print out a file one entry per line, with a single space separating keys from values.

Examples
       The  following  example shows how a combination of commands can be used to make the yellow pages files and from the file.  The percent sign
       (%) signifies the system prompt.

       % awk 'BEGIN { FS = ":"; OFS = ""; }
	{ print $1, $0 }' /etc/passwd > ptmp
       % makedbm ptmp passwd.byname
       % rm ptmp

       The command creates the file ptmp which is in a form usable by The command uses the ptmp file to create the yellow pages dbm files and  The
       command removes the ptmp file.

See Also
       yppasswd(1yp), dbm(3x), ypmake(8yp)

																      makedbm(8yp)
All times are GMT -4. The time now is 07:37 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy