Combine multiple lines into single line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Combine multiple lines into single line
# 1  
Old 04-07-2014
Combine multiple lines into single line

Hi All ,

I have a file with below data
Code:
# User@Host: xyz @  [ipaddress]
# Query_time: t1  Lock_time: t2 Rows_sent: n1  Rows_examined: n2
SET timestamp=1396852200;
select count(1) from table;
# Time: 140406 23:30:01
# User@Host: abc @  [ipaddress]
# Query_time: t1  Lock_time: t2 Rows_sent: n1  Rows_examined: n2
SET timestamp=1396852201;
Select max(value) from table;

I would like an output some thing like below

Code:
#User@Host:xyz@[ipaddress] | Query_Time: t1 | Lock_time: t2 | Rows_Sent: n1 | Rows_examined: n2 | SET timestamp=1396852200; | select count(1) from table;|# Time: 140406 23:30:01
#User@Host:xyz@[ipaddress] | Query_Time: t1 | Lock_time: t2 | Rows_Sent: n1 | Rows_examined: n2 | SET timestamp=1396852201; | Select max(value) from table;

I tried paste option which did not work fine as the lines between same value are changing .
Moderator's Comments:
Mod Comment Please use CODE tags when showing sample input, output, and code fragments.

Last edited by Don Cragun; 04-07-2014 at 08:19 PM.. Reason: Add CODE tags.
# 2  
Old 04-08-2014
Code:
perl -ne '
	if(m/User@Host/){s/\s//g; if($.>1){print "\n"}; print "$_ | "}
	elsif((@m = m/\w+:\s\w+/g) && (0+@m>2)){print join(" | ",@m) }
	else {chomp; print " | $_"}
' file

# 3  
Old 04-08-2014
Mutiple lines combining in single line

Thank you Jethrow for the code , I am still very new to Perl I am fiddling around . Could you let me know what wrong I am doing when executing the query .

Code:
 
perl -ne '
if(m/User@Host/){s/\s//g; if($.>1){print "\n"}; print "$_ | "}
elsif((@m = m/\w+:\s\w+/g) && (0+@m>2)){print join(" | ",@m) }
else {chomp; print " | $_"}
' /home/rpagadala/temp1

Error

HTML Code:
syntax error at test.pl line 2, near "-ne"
Execution of test.pl aborted due to compilation errors.
# 4  
Old 04-08-2014
Jethrow's code worked for me, but I couldn't copy and paste the whole thing at once. When I copied line by line it ran and gave me:

Code:
#User@Host:xyz@[ipaddress] | Query_time: t1 | Lock_time: t2 | Rows_sent: n1 | Rows_examined: n2 | SET timestamp=1396852200; | select count(1) from table; | # Time: 140406 23:30:01
#User@Host:abc@[ipaddress] | Query_time: t1 | Lock_time: t2 | Rows_sent: n1 | Rows_examined: n2 | SET timestamp=1396852201; | Select max(value) from table;

---------- Post updated at 03:43 PM ---------- Previous update was at 03:21 PM ----------

rakesh_411, I can't send private messages until my post count is 10, so hopefully this isn't inappropriate...

For the record, I'm not really a perl guy either.

I simply copied and pasted each line of jethrow's code one by one:

Code:
perl -ne '

Enter
Code:
if(m/User@Host/){s/\s//g; if($.>1){print "\n"}; print "$_ | "}

Enter
Code:
elsif((@m = m/\w+:\s\w+/g) && (0+@m>2)){print join(" | ",@m) } else {chomp; print " | $_"}

Enter
Code:
else {chomp; print " | $_"}

Enter
Code:
' file

Enter

And I got the output that I posted above.
# 5  
Old 04-08-2014
Thanks Blake , I was able to get the output by running at the command line however if I save it in a file and execute it I am getting error . Let me know if any changes need to be done if I had to save the same query in a file and execute it .
# 6  
Old 04-09-2014
Quote:
Originally Posted by rakesh_411
I was able to get the output by running at the command line however if I save it in a file and execute it I am getting error.
It is worthless to mention an error and then not report it accurately. Copy/paste the exact version of the script you're using along with the exact error messages generated. Without that information, you're wasting everyone's time (including your own).

Also, it can only help if you specify which operating system platform you're working with.

Regards,
Alister
# 7  
Old 04-09-2014
Hello Alister,

Sorry for my delay response , I am running Linux (2.6) . Below is the error message I am receiving when running as

Code:
 
 perl test.pl
syntax error at test.pl line 1, near "-ne"
Execution of test.pl aborted due to compilation errors.

However when I execute as below its running fine .
Code:
 
./test.pl

Again I apologies for not providing right information .
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Multiple lines to single line

I have code as below # create temporary table `temp4277`(key(waybill_no)) select waybill_no,concat_ws('',card_type,card_series_no) cardinfo from rfid_temp_ticket where waybill_no='4277' group by... (4 Replies)
Discussion started by: kaushik02018
4 Replies

2. Shell Programming and Scripting

Merge multiple lines into a single line

Hi all, I'm relatively new to scripting, I can do pretty basic things. I have a daily log file that looks like: timestamp=2017-06-28-01.01.35.080576; event status=0; userid=user1; authid=user1; application id=10.10.10.10.11111.12345678901; application name=GUI; ... (29 Replies)
Discussion started by: dwdnet
29 Replies

3. Shell Programming and Scripting

Making multiple lines as single line

Hi All, I have a spool file which as shown below. I want to make it as single line after every semicolon. In this case there should be 2 lines in vi editor. I am not used to use sed so could you guys please help me out ? exec spk_dba.sp_runsql('ALP','CREATE DATABASE LINK "TEST" CONNECT TO... (2 Replies)
Discussion started by: nicolas38
2 Replies

4. Shell Programming and Scripting

merging multiple lines into single line

Hi, 1. Each message starts with date 2. There is blank line between each message 3. Each message does not contain same number of lines. Any help in merging multiple lines in each message to a single line is much appreciated. AIX: Korn Shell Error log file looks like below. ... (5 Replies)
Discussion started by: bala123
5 Replies

5. Shell Programming and Scripting

Multiple lines in a single column to be merged as a single line for a record

Hi, I have a requirement with, No~Dt~Notes 1~2011/08/1~"aaa bbb ccc ddd eee fff ggg hhh" Single column alone got splitted into multiple lines. I require the output as No~Dt~Notes 1~2011/08/1~"aaa<>bbb<>ccc<>ddd<>eee<>fff<>ggg<>hhh" mean to say those new lines to be... (1 Reply)
Discussion started by: Bhuvaneswari
1 Replies

6. Shell Programming and Scripting

Combine multiple lines in single line

This is related to one of my previous post but now with a slight difference: I need the "Updated:" to be in one line as well as the "Information:" on one line as well. These are in multiple lines right now as seen below. These can have 2 or more lines that needs to be in one line. System name:... (8 Replies)
Discussion started by: The One
8 Replies

7. Shell Programming and Scripting

Multiple lines into a single line

Hi, I've some files with the following data and i need to convert the lines between the separator ---, into a single line. I've tried with the paste cmd but my main problem is that the number of lines between the separator is not fix, it can very between 1-4 lines. Input --- 2010-02-22... (4 Replies)
Discussion started by: RickyC9999
4 Replies

8. Shell Programming and Scripting

Getting multiple messy lines into one single line

I have a file that contains the following: :@:176:@:4:@:name:@:file:@:this is a summary:@:description can be long but who knows can even have <br> tags.:@:how to:@:type:@:18544:@:550:@:400:END: :@:177:@:9:@:name:@:file:@:summary:@:this will containg... (18 Replies)
Discussion started by: sysrenan
18 Replies

9. Shell Programming and Scripting

replacing multiple lines with single line

Can any one give me the idea on replacing multiple blank lines with a single blank line? Please conside it for a file having more than 100 number of characters. Regards, Siba (3 Replies)
Discussion started by: siba.s.nayak
3 Replies

10. Shell Programming and Scripting

Splitting a single line into multiple lines

I have a case where, I need to look into a file. Go to each line of the file, find the length of the line, if the length of the line is more than 75 chars, I need to split the line into multiple lines of 75chars max. If the length of the line is less than 75, we need not do anything. So at the... (4 Replies)
Discussion started by: thanuman
4 Replies
Login or Register to Ask a Question