Unix Join


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Unix Join
# 1  
Old 08-13-2012
Unix Join

Hi,

I am trying to join two simple files but unable to do so properly.
File R1 :
100
101
102
105
.
.
1000
10001

File R2
100|x1
102|x2
1000|a1
10001|a2

and when i do
Code:
 
    join -t \| -1 1 -2 1 R1 R2

i only get
100|x1
102|x2

why is 1000 and 100001 not coming?
# 2  
Old 08-13-2012
Hi,

Join needs the default sort order, not a numerical one.. Try this if you are using bash / ksh93:
Code:
join -t \| <(sort -t\| -k1,1 R1) <(sort -t\| -k1,1 R2)

This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 08-13-2012
Do you need the -a flag for join?
# 4  
Old 08-13-2012
Hi Scrutinizer .. Thank you for helping me quickly. This is working .
I misunderstood that any sort will do as long as both files are having the same sort type.


The file R2 is actually very huge and when attempting to sort, I get this error

Quote:
msgcnt 16 vxfs: mesg 001: vx_nospace - /dev/-/v8 file system full (1 block extent)
msgcnt 18 vxfs: mesg 001: vx_nospace - /dev/-/v8 file system full (1 block extent)
sort: A write error occurred while merging.
Is it better to join these files using awk than join..?

---------- Post updated at 04:05 PM ---------- Previous update was at 04:03 PM ----------

Hi elixir.. Yes, i need all records from first file.. and only the matching ones from second file.. I gave -a1 and -e "0"
# 5  
Old 08-13-2012
Your temporary filesystem appears to be too small. You can specify an alternative location with sort's -T option...

... or try something like this:
Code:
awk -F\| 'NR==FNR{A[$1]; next} $1 in A' R1 R2

This User Gave Thanks to Scrutinizer For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

UNIX Join not working as expected

Hello All, I'm working on a Shell script to join data from two files using Join command but not able to get the desired output as its throwing me an error: I have sorted the two files on the Column 1 numerically which is used as Join clause File 1: 1,ABC,GGG,20160401 2,XYZ,KKK,20160401... (2 Replies)
Discussion started by: venkat_reddy
2 Replies

2. Shell Programming and Scripting

How to join two different file in UNIX?

Hello folks I have 2 files which are like this: file (a): id phenotype 100 1.2 200 -0.5 300 3.1 file (b) id genotype 100 0 1 2 ...... 200 1 1 1...... 300 2 0 0 ....... I should mention in file (a) I have 2... (3 Replies)
Discussion started by: sajmar
3 Replies

3. UNIX for Dummies Questions & Answers

UNIX outer join

Hello.. I am trying to join two files of about 7000 records. it looked quite straight forward when i began, but i'm not getting the desired output. here is what i'm trying to do: cat xxx item,So,Mo,Tu aaa,1,1,1 bbb,1,1,4 ccc,1,1,0 ddd,1,1,1 cat yyy item,Tu,We aaa,1,1 bbb,4,0... (7 Replies)
Discussion started by: wanderingmind16
7 Replies

4. 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

5. Shell Programming and Scripting

Left Join in Unix based on Key?

So I have 2 files: File 1: 111,Mike,Stipe 222,Peter,Buck 333,Mike,Mills File 2: 222,Mr,Bono 444,Mr,Edge I want output to be below, where 222 records joined and all none joined records still in output 111,Mike,Stipe 222,Peter,Buck,Mr,Bono 333,Mike,Mills 444,Mr,Edge (4 Replies)
Discussion started by: stack
4 Replies

6. UNIX for Dummies Questions & Answers

Join multiple Split files in Unix

Hi, I have a big file of 50GB size. I need copy it to a second ftp from a ftp. I am not able to do the full 50GB transfer as it timesout after some time. SO i am trying to split the file into 5gb each 10 files with the below command. split -b 5368709120 pack.tar.gz backup.gz After I... (2 Replies)
Discussion started by: venu_nbk
2 Replies

7. Shell Programming and Scripting

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. xxxxxxxxx yyyyyyyyyyy zzz aaaaaaaaa bbbbbb ccccc Expected out put is xxxxxxxxx yyyyyyyyyyy zzz aaaaaaaaa bbbbbb ccccc I tried with awk as shown below. (23 Replies)
Discussion started by: rdhanek
23 Replies

8. Shell Programming and Scripting

Join two fixed length Files in Unix

Hi, Can we join two fixed length files in Unix using JOIN command? Is there any other command to accomplish the same? Thanks, G.Harikrishnan (6 Replies)
Discussion started by: gharikrishnan
6 Replies

9. UNIX for Advanced & Expert Users

unix join !

just wandering if anyone knows what kind of algorithm unix join command is using to join 2 files. Thanks! (2 Replies)
Discussion started by: strike
2 Replies

10. UNIX for Dummies Questions & Answers

How to join flat files together under unix

Hi, I have 7 big flat files, each contains 24 million records which have been sorted by the first field delimitered by Ctrl B (002). I want to join them together side by side, eg. File A: 1^Ba^Bb 2^Bx^By .... File B: 1^Bc^Bd 2^Bm^Bn .... After merged, it should look like :... (7 Replies)
Discussion started by: xli
7 Replies
Login or Register to Ask a Question