Merge 3 files in 1 file in an ordered way


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Merge 3 files in 1 file in an ordered way
# 1  
Old 03-26-2010
Merge 3 files in 1 file in an ordered way

Hi, I have a question that I cannot solve.
if I have a file like this (lets say "x-values.dat"):
x1
x2
x3
another file like this (lets say "y-values.dat"):
y1
y2
y3
y4
and another file like this (lets say "p-values.dat"):
p1
p2
p3
...
p12
How can I get this output?
x1 y1 p1
x1 y2 p2
x1 y3 p3
x1 y4 p4
x2 y1 p5
x2 y2 p6
x2 y3 p7
x2 y4 p8
x3 y1 p9
x3 y2 p10
x3 y3 p11
x3 y4 p12

Any help would be much appreciated
# 2  
Old 03-26-2010
Code:
paste -d\  file1 file2 file3

If the all files have the same number of records.
# 3  
Old 03-26-2010
No, the files doesn't have the same number of records (in my example, X has 3 values, Y has 4, and P has 12), and the code you suggested me didn't work, because it merge each line of each file, and that is not what I exactly need.
You can check my first post in order to see the output that I need.
# 4  
Old 03-26-2010
Try this:
Code:
awk '{
  while ( (getline y < "y-values.dat") > 0 ) {
    s=$0 FS y
    getline p < "p-values.dat"
    print s FS p
  }
  close("y-values.dat")
}' x-values.dat


Last edited by Franklin52; 03-26-2010 at 04:19 PM.. Reason: typo
# 5  
Old 03-26-2010
The code suggested by Franklin52 worked fine, although it prints 4 lines more. This is the output that I got:
x1 y1 p1
x1 y2 p2
x1 y3 p3
x1 y4 p4
x2 y1 p5
x2 y2 p6
x2 y3 p7
x2 y4 p8
x3 y1 p9
x3 y2 p10
x3 y3 p11
x3 y4 p12
y1 p12
y2 p12
y3 p12
y4 p12

But for the moment it's ok, I can remove these extra lines.
Thank you very much Franklin52!
# 6  
Old 03-26-2010
Quote:
Originally Posted by lego
The code suggested by Franklin52 worked fine, although it prints 4 lines more. This is the output that I got:
x1 y1 p1
x1 y2 p2
x1 y3 p3
x1 y4 p4
x2 y1 p5
x2 y2 p6
x2 y3 p7
x2 y4 p8
x3 y1 p9
x3 y2 p10
x3 y3 p11
x3 y4 p12
y1 p12
y2 p12
y3 p12
y4 p12

But for the moment it's ok, I can remove these extra lines.
Thank you very much Franklin52!
You have one empty line in the file x-values.dat.
# 7  
Old 03-26-2010
You're right, and now your script is working like a charm :-)
Tahnk you so much!!
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Merge different files into the original file

Hello Below is my requirement I have 3 files A1.txt , A2.txt and A3.txt . A2 is dynamically generating file I want the merge of A1,A2 and A3 in A2.txt Could you please help? (3 Replies)
Discussion started by: Pratik4891
3 Replies

2. UNIX for Dummies Questions & Answers

How to merge two files into third file?

Hi All, i have a requirement as below. There are two files. In 1st file a.txt i have four lines as below Ramesh Suresh Pradeep Franklin In 2nd file b.txt i have 5 lines as below Francis Elizabeth David John Ravi The output file suppose c.txt should contain 1st line of... (5 Replies)
Discussion started by: sureshk_85
5 Replies

3. Shell Programming and Scripting

Merge two files into one file

Hi, I need help with merging two files. My requirement is as below: File 1: MachineA MachineB File 2: Process1 Process2 Desired File: MachineA Process1 MachineB Process2 If file 2 contains only one entry Process1, then second line in the desired output should be: MachineA Process1... (1 Reply)
Discussion started by: chiru_h
1 Replies

4. UNIX for Dummies Questions & Answers

merge files along with file names (awk)?

Dear programmers, I have a question about conditionally merging multiple files and having their file names in the first column. Input files: file.1.extension file.2.extension file.3.extension file.4.extension ... file.1000.extension where each file looks like this (with multiple lines):... (5 Replies)
Discussion started by: wei.deng
5 Replies

5. Programming

Merge files from /etc to one file using C

Hi guys, I have a question which might be easy to answer but I don't how to do it. The thing is I need to make a program in C which creates a file with all the content from the files in \etc. I'm not new to C language but to UNIX. I've read somewhere I need to use functions like f_read... (2 Replies)
Discussion started by: sussil
2 Replies

6. Shell Programming and Scripting

merge two files into one file use awk

Hi, guys. I have one question: I have two files: passwd and shadow (the number of records in these files are not equal)the contents of them are below: passwd: ************** ftp:x:24:24: sshd:x:71:65: uucp:x:10:14: brownj:x:5005:1000: sherrys: x :5006:1000: ... ************* ... (2 Replies)
Discussion started by: daikeyang
2 Replies

7. Shell Programming and Scripting

Merge two files whose names are given in other file

Hi, I have a pointer file ptr.txt. There may be any number of files mentioned in the ptr.txt file eg: cat ptr.txt /home/abc.txt /home/pqr.txt /home/xyz.txt I have to read this pointer file and merge the files given in the pointer file so that final file say... (1 Reply)
Discussion started by: harshada
1 Replies

8. Shell Programming and Scripting

merge two files in one file

All, I've basic knowlege on understanding UNIX Shell Programming. Right now I need to write a script for the following requirement. Kindly help me or suggest me how to write a Shell script. I've 8 .csv files that are containing "Detail" records. Each file getting more than 1 million. Another... (3 Replies)
Discussion started by: nvkuriseti
3 Replies

9. Shell Programming and Scripting

merging two file in an ordered way

actually, it seems somewhat confusing.. let me clearify it i want a file having all the attributes produced by ls -lc command. i want to add one more thing i.e. time of last access to a file attribute. so how can i merge these two things in a single file in a columnar way. i tried with these... (2 Replies)
Discussion started by: raku05
2 Replies
Login or Register to Ask a Question