Merging columns from multiple files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Merging columns from multiple files
# 1  
Old 12-18-2009
Merging columns from multiple files

Hello,

I have a number of tab delimited data files consists of two columns. Like that:

Code:
File1
800.000000	0.002744
799.000000	0.002517
798.000000	0.002836
797.000000	0.002553

FIle2
800.000000	0.000261
799.000000	0.000001
798.000000	0.000551
797.000000	0.000275

File3
800.000000	-0.060552
799.000000	-0.060650
798.000000	-0.060206
797.000000	-0.060329

...

FileN

I would like to display the data in one file:

Code:
                         File1		FIle2		File3     ... FileN
800.000000	0.002744	0.000261	-0.060552
799.000000	0.002517	0.000001	-0.060650
798.000000	0.002836	0.000551	-0.060206
797.000000	0.002553	0.000275	-0.060329

What is the best way to do that?

Thanks a lot!
Erden

PS - I tried `paste *` this is what I get:

Code:
800.0000800.0000000027440.0033342
799.0000799.0000000025170.0045670
798.0000798.0000000028360.0048366
797.0000797.0000000025530.0025539

Also I searched similar topics, but nothing worked out for me.

Last edited by erden; 12-18-2009 at 07:13 PM..
# 2  
Old 12-18-2009
re: Multiple Columns

try the join command, man join
# 3  
Old 12-18-2009
Quote:
Originally Posted by njysprez
try the join command, man join
join only works for two files. I have a lot of files.
# 4  
Old 12-18-2009
Quote:
Originally Posted by erden
Hello,

I have a number of tab delimited data files consists of two columns. Like that:

File1
800.000000 0.002744
799.000000 0.002517
798.000000 0.002836
797.000000 0.002553

FIle2
800.000000 0.000261
799.000000 0.000001
798.000000 0.000551
797.000000 0.000275

File3
800.000000 -0.060552
799.000000 -0.060650
798.000000 -0.060206
797.000000 -0.060329

...

FileN

I would like to display the data in one file:

File1 FIle2 File3 ... FileN
800.000000 0.002744 0.000261 -0.060552
799.000000 0.002517 0.000001 -0.060650
798.000000 0.002836 0.000551 -0.060206
797.000000 0.002553 0.000275 -0.060329

What is the best way to do that?

Thanks a lot!
Erden

PS - I tried `paste *` this is what I get:

800.0000800.0000000027440.0033342
799.0000799.0000000025170.0045670
798.0000798.0000000028360.0048366
797.0000797.0000000025530.0025539

Also I searched similar topics, but nothing worked out for me.
Hello
Code:
paste -d" " File1 File2 File3

Regards
# 5  
Old 12-18-2009
Quote:
Originally Posted by gaurav1086
Hello
Code:
paste -d" " File1 File2 File3

Regards
Didn't work. This is the output

Code:
paste -d" " File1 File2 File3

 800.000000     0.0033342
 799.000000     0.0045670
 798.000000     0.0048366
 797.000000     0.0025539

Somehow it takes first column of the first file and second column of the last file. Not the others Thanks anyway.

Last edited by erden; 12-18-2009 at 07:16 PM..
# 6  
Old 12-18-2009
Quote:
Originally Posted by erden
Didn't work. This is the output of `paste -d" " File1 File2 File3`:

800.000000 0.0033342
799.000000 0.0045670
798.000000 0.0048366
797.000000 0.0025539

Somehow it takes first column of the first file and second column of the last file. Not the others Thanks anyway.
But it works for me.
Code:
localhost:/home/gaurav# cat >t1
800.000000 0.002744
799.000000 0.002517
798.000000 0.002836
797.000000 0.002553
localhost:/home/gaurav# cat > t2
800.000000 0.000261
799.000000 0.000001
798.000000 0.000551
797.000000 0.000275
localhost:/home/gaurav# cat > t3
800.000000 -0.060552
799.000000 -0.060650
798.000000 -0.060206
797.000000 -0.060329
localhost:/home/gaurav# paste -d" " t1 t2 t3
800.000000 0.002744 800.000000 0.000261 800.000000 -0.060552
799.000000 0.002517 799.000000 0.000001 799.000000 -0.060650
798.000000 0.002836 798.000000 0.000551 798.000000 -0.060206
797.000000 0.002553 797.000000 0.000275 797.000000 -0.060329

# 7  
Old 12-18-2009
When I copy and paste from here it worked. Forum changes tab chars with space.

But I did copy and paste data from my original long files and this time I get really weird results. Now it worked for just last column. It is crazy!

Code:
 800.000000     -0.054032
 799.000000     -0.053876
 798.000000     -0.053918
797.000000	-0.055687 797.000000	-0.052766 797.000000	-0.054031


I attached my files, if anyone wants to check.

I am using ubuntu 9.10 and bash

Thanks.

Last edited by vgersh99; 12-18-2009 at 06:59 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Merging two files based on matching columns

Hi, I am facing issues while accomplishing below task. We have two files Test1.txt and Test2.txt. We have to match 1st column of Test1.txt file with 2nd column of Test2.txt and then merge 2nd file with the 1st file. In the output we should select column 1 and 2 from the 1st file and column 1... (5 Replies)
Discussion started by: Prathmesh
5 Replies

2. Shell Programming and Scripting

Merging Multiple Columns between two files

Hello guys, I have 2 CSV files which goes like this: CSV1: Breaking.csv: UTF-8 "Name","Description","Occupation","Email" "Walter White","","Chemistry Teacher","w.w@bb.com" "Jessie Pinkman","","Junkie","j.p@bb.com" "Hank Schrader","","DEA Agent","h.s@bb.com" CSV2: Bad.csv... (7 Replies)
Discussion started by: jeffreybsu
7 Replies

3. Shell Programming and Scripting

Merging multiple files from multiple columns

Hi guys, I have very basic linux experience so I need some help with a problem. I have 3 files from which I want to extract columns based on common fields between them. File1: --- rs74078040 NA 51288690 T G 461652 0.99223 0.53611 3 --- rs77209296 NA 51303525 T G 461843 0.98973 0.60837 3... (10 Replies)
Discussion started by: bartman2099
10 Replies

4. Shell Programming and Scripting

Merging columns based on one or more column in two files

I have two files. FileA.txt 30910 rs7468327 36587 rs10814410 91857 rs9408752 105797 rs1133715 146659 rs2262038 152695 rs2810979 181843 rs3008128 182129 rs3008131 192118 rs3008170 FileB.txt 30910 1.9415219673 0 36431 1.3351312477 0.0107191428 36587 1.3169171182... (2 Replies)
Discussion started by: genehunter
2 Replies

5. UNIX for Dummies Questions & Answers

Merging two text files by two columns

Hi, I have two text files that I would like to merge/join. I would like to join them if the first columns of both text files match and the second column of the first text file matches the third column of the second text file. Example input: First file: 1334 10 0 0 1 5.2 1334 12 0 0 1 4.5... (4 Replies)
Discussion started by: evelibertine
4 Replies

6. Shell Programming and Scripting

merging files and adding special columns

Hi everyone, I got a problem with merging files and hoped one of you would have an idea how to approach this issue. I tried it with awk, but didn't get far. This is what I have: I got 40 files looking like the ones below. All have three columns but the number of rows differs (20000 to 50000).... (6 Replies)
Discussion started by: TuAd
6 Replies

7. UNIX for Dummies Questions & Answers

Merging two CSV files by 3 primary keys (columns)

Hi there! I have the following problem: I have a set of files called rates_op_yyyyddmm with the format below (which corresponds to the file rates_op_20090130) 30-JAN-2009,ED,FEB09,C,96.375,,,0,,,,,,2.375,,,,,, 30-JAN-2009,ED,FEB09,C,96.5,,,0,,,,,,2.25,,,,,,... (2 Replies)
Discussion started by: Pep Puigvert
2 Replies

8. Shell Programming and Scripting

Merging columns from multiple files in one file

Hi, I want to select columns from multiple files and combine them in one file. The files are simulation-data-files with 23 columns each and about 50 rows. I now use: cut -f 11 Sweep?wing-30?scale=0.?0?fan2?.txt | pr -3 | awk '{printf("\n%s\t%s\t%s",$1,$2,$3)}' > ../Data_Processed/output.txtI... (1 Reply)
Discussion started by: isgoed
1 Replies

9. UNIX for Dummies Questions & Answers

Extracting columns from different files for later merging

Hello! I wan't to extract columns from two files and later combine them for plotting with gnuplot. If the files file1 and file2 look like: fiile1: a, 0.62,x b, 0.61,x file2: a, 0.43,x b, 0,49,x The desired output is a 0.62 0.62 b 0.61 0.49 Thank you in advance! (2 Replies)
Discussion started by: kingkong
2 Replies

10. Shell Programming and Scripting

merging few columns of two text files to a new file

hi i need to select a few columns of two txt files and write it to a new file. there is one common field for both of these files. plz help me in this thanks in advance (4 Replies)
Discussion started by: kolvi
4 Replies
Login or Register to Ask a Question