Visit Our UNIX and Linux User Community


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?
# 8  
Old 10-06-2009
Try this for printing the line with pattern, line above and the next line.
awk '/update/{where=NR;print}NR==where+1 && where!=0 {print}'
# 9  
Old 10-06-2009
Code:
nawk 'c&&!--c;/update/{c=1;printf $0 OFS}' myFile

# 10  
Old 10-06-2009
HI Rdhanek,

you can make use of this code:

Code:
paste -s -d "  \n" filename

output:
Code:
xxxxxxxxx yyyyyyyyyyy zzz
aaaaaaaaa bbbbbb ccccc

Regards,
Sanjay
# 11  
Old 10-07-2009
Quote:
Originally Posted by protocomm
try this...

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

Thank you very much for your quick response. It does not quite yet what I am looking for.. I need only two lines, for what I just changed "NR%2" like this:

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

The problem is, that I want to print like this only when it meets a patter, for example:

input:

select <something><something>
update <something><something>
<something><something>
insert into <something><something>

output:

select <something><something>
update <something><something><something><something>
insert into <something><something>

I just cant figure out how to do it.. I dont know if I have to use something like

Code:
/update/{ if (NR%2) ..

or

Code:
if((NR%2) && ($1=="nueva"))

both just doesnt work...

---------- Post updated at 11:08 AM ---------- Previous update was at 11:01 AM ----------

Quote:
Originally Posted by vgersh99
Code:
nawk 'c&&!--c;/update/{c=1;printf $0 OFS}' myFile

Thanks, this works great, but just print the two lines I want in one, that's perfect Smilie but it doesnt print the rest of the file. How to make this work then?
# 12  
Old 10-07-2009
Code:
nawk 'c&&!--c{print;next};/update/{c=1;printf $0 OFS;next}1' myFile

# 13  
Old 10-07-2009
if the total number of lines is in multiples of 3, then
Code:
sed -n 'N;N;s/\n/ /gp' FILENAME

# 14  
Old 10-07-2009
Quote:
Originally Posted by vgersh99
Code:
nawk 'c&&!--c;/update/{c=1;printf $0 OFS}' myFile

Congratulations, this works 100% perfect. Thanks so much. I will keep studying the uses of awk, which are quite extensive.
I really appreaciate your help, man.
Smilie

Regards.

---------- Post updated at 01:10 PM ---------- Previous update was at 11:56 AM ----------

Quote:
Originally Posted by Kibou
Congratulations, this works 100% perfect. Thanks so much. I will keep studying the uses of awk, which are quite extensive.
I really appreaciate your help, man.
Smilie

Regards.
Just one more question regarding your impressive advanced knowledge of awk:

I have appended my line when found the word "update", but I want this to happen only when next line doesnt contain either the string "alter table" or "insert into".

Like,

input:

Code:
select <something><something>
update <something><something>
<something><something>
insert into <something><something>
select <something><something>
update <something><something>
alter table <something><something>
update <something><something>
insert into <something><something>

output:

Code:
select <something><something>
update <something><something><something><something>
insert into <something><something>
select <something><something>
update <something><something>
alter table <something><something>
update <something><something>
insert into <something><something>

thank you so much.. I hope the explanation is clear enough now..

Last edited by Kibou; 10-07-2009 at 09:36 AM..

Previous Thread | Next Thread
Test Your Knowledge in Computers #388
Difficulty: Medium
The Unix make command uses A.I. to maintain, update, and regenerate related programs and files.
True or False?

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

Featured Tech Videos