How can i join three lines into one in unix?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How can i join three lines into one in unix?
# 1  
Old 07-23-2009
How can i join three lines into one in unix?

Hi all,

I am trying to merge three lines into one in my unix text file.

My text file sis omething like this.
Code:
xxxxxxxxx
yyyyyyyyyyy
zzz
aaaaaaaaa
bbbbbb
ccccc

Expected out put is
Code:
xxxxxxxxx yyyyyyyyyyy zzz
aaaaaaaaa bbbbbb ccccc

I tried with awk as shown below.
Code:
awk '{printf $0 " "; getline; print $0}'

But it is working only for merging two lines. Please help me in modifying this awk or any other alternative for this?
# 2  
Old 07-23-2009
HTH
Code:
$ cat file.txt
xxxxxxxxx
yyyyyyyyyyy
zzz
aaaaaaaaa
bbbbbb
ccccc
$ perl -pi -e 's/\n/ / if $.%3' file.txt
$ cat file.txt
xxxxxxxxx yyyyyyyyyyy zzz
aaaaaaaaa bbbbbb ccccc

# 3  
Old 07-23-2009
See if this works.

Code:
awk '{
if (NR % 3)
printf("%s ", $0)
else
printf("%s\n", $0)
}' file

# 4  
Old 07-23-2009
Thanks lathavim..it worked perfectly..Pludi, i am looking for a shell command..anyway thanks for your reply.
# 5  
Old 07-23-2009
You do know that Perl is as much a "shell command" as awk (both aren't shell built-ins but external commands), and both commands given do the same thing.
# 6  
Old 10-06-2009
Quote:
Originally Posted by lathavim
See if this works.

Code:
awk '{
if (NR % 3)
printf("%s ", $0)
else
printf("%s\n", $0)
}' file

Hi, I was reading this.. this work perfect, but I need something slightly different. I need print in the same line two lines if it finds a pattern ( a string in the first line). I am trying different things with awk.. but cant get it to work Smilie

It would be something like

select bla bla
update bla bla
bla bla
insert into bla bla

and the resulting file must find "update" and then print that line and the next one altogether, like:

select bla bla
update bla bla bla bla
insert into

Any help would be great.....
# 7  
Old 10-06-2009
try this...

Code:
awk '{if (NR%3) {ORS="";print " "$0} else {ORS="\n";print " "$0}}'
 file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Join Lines

Hi how do I join files like below in script. Thanks, Ashan there are may line like this in the file. zone name DR_TMP_A_sev1_3eA vsan 200 pwwn 50:00:09:73:f0:16:35:08 pwwn c0:50:76:08:6e:dc:00:16 zone name DR_TMP_A_SVR2_3eA vsan 200 pwwn 50:00:09:73:f0:16:35:08 pwwn... (4 Replies)
Discussion started by: ashanabey
4 Replies

2. UNIX for Dummies Questions & Answers

how to join all lines in afile in unix

Hi, I have a unix file which has many lines, i need to join all the lines to single line. Eg: myfile.txt contains: a 123 45fg try and i need the output as : a 123 45fg try Please help me on this. Thanks! (2 Replies)
Discussion started by: RP09
2 Replies

3. Shell Programming and Scripting

Help in unix script to join similar lines of input

Hi, I have been thinking of how to script this but i have no clue at all.. Could someone please help me out or give me some idea on this? I would like to group those lines with the same first variable in each line, joining the 2nd variables with commas. Let's say i have the following input. ... (3 Replies)
Discussion started by: rei125
3 Replies

4. Shell Programming and Scripting

join lines in file

I have a file like this: --------------------------------------------------------------- 26 00:04:48,440 --> 00:04:51,440 I don't know why he can't just do the Great Apache Flaming Arrow Act. 27 00:04:52,440 --> 00:04:54,839 Didn't you tell him to use the gopher snake? 28... (1 Reply)
Discussion started by: thailand
1 Replies

5. Shell Programming and Scripting

join two lines

I want to join this two lines but only when after him I have nothing or a comma Yes, I know Jonesy, and I'll give him about one more minute. this two lines must become Yes, I know Jonesy, and I'll give him about one more minute. thank you very much (11 Replies)
Discussion started by: thailand
11 Replies

6. Shell Programming and Scripting

join 2 lines

hi all i have sample and i need script to do this /dev/xxx oracle test /dev/sap 9999 000 88 99 i need the out put like this /dev/xxx oracle test /dev/sap 9999 000 88 99 can any one provide me with an idea to solve this problem (8 Replies)
Discussion started by: maxim42
8 Replies

7. Shell Programming and Scripting

Join the lines

Hi All, Currently, the output looks like this: hdisk0 queue_depth:3 hdisk1 queue_depth:3 hdisk2 queue_depth:1 hdisk3 queue_depth:1 I need to change the format to look like this: hdisk0 queue_depth:3 hdisk1 queue_depth:3 hdisk2 queue_depth:1 (8 Replies)
Discussion started by: Beginer0705
8 Replies

8. Shell Programming and Scripting

join lines

input1 x x input2 y x x z join input1 input2>>output ouput x x (2 Replies)
Discussion started by: repinementer
2 Replies

9. UNIX for Dummies Questions & Answers

how to join lines

can anyone tell me as "how to join all lines in a file " using a shell script Actually i have many files in a directory and for each file i want to join all the lines using a shell scrip . Thanks in advance!!! (8 Replies)
Discussion started by: glamo_2312
8 Replies

10. Shell Programming and Scripting

join two lines together

Hi, I have a file with on one line a uid, and on the next line a date. I am trying to make the to into one line. Here's an example: koppx 20031125 kraan 20031119 sarox 20031107 And this is what i want it to be: koppx;20031125 kraan;20031119 sarox;20031107 I have been trying... (4 Replies)
Discussion started by: tine
4 Replies
Login or Register to Ask a Question