joining files based on key column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting joining files based on key column
# 8  
Old 07-22-2009
you're right - it works as expected with Solaris' 'nawk' - I did test it correctly.
The thing is that the nawk's "system" invokes sh (Bourne) and 'test -e' doesn't exist for Bourne shell - see 'man test':
Code:
          -e file
                True if file exists. (Not available in sh.)

so one has to use '-f' - as you did:
Code:
$ ls
zin.txt
$ nawk -v file=zin.txt 'BEGIN {print file, system("[ -f " file " ]")}' < /dev/null
zin.txt 0
$ nawk -v file=zin5.txt 'BEGIN {print file, system("[ -f " file " ]")}' < /dev/null
zin5.txt 1

# 9  
Old 07-22-2009
Quote:
Originally Posted by vgersh99
you're right - it works as expected with Solaris' 'nawk' - I did test it correctly.
The thing is that the nawk's "system" invokes sh (Bourne) and 'test -e' doesn't exist for Bourne shell - see 'man test':
Code:
          -e file
                True if file exists. (Not available in sh.)

so one has to use '-f' - as you did:
Yes, I changed it after I realized that (I got a syntax error).

Another version with Perl:

Code:
perl -F'\|' -lane'
    $f1{ $F[0] } = $F[1] and next if @F == 3;
    if ( /at$/ && exists $f1{ $F[0] } ) {
        $F[-2] =~ /(.+)(\.[^.]+)$/;
        $fn = $1 . "_" . $f1{ $F[0] } . $2;
        -e $fn and print $fn;
    }' a1.txt a2.txt

# 10  
Old 07-23-2009
Hi ,
Please help on the below scnerio,I have take 1st column from a.txt and compare against b.txt ,if matches ,display the below o/p

a.txt
20080710|20080711


b.txt

20070708
20070709
20090710
20090711
20090712
20090713

Expecting o/p

20090710
20090711
20090712
20090713

Thanks &Regards,
Akil
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Matching 2 files based on key

Hi all I have two files I need to match record from first file and second file on column 1,8 and and output only match records on file1 File1: 020059801803180116130926800002090000800231000245204003160000000002000461OUNCE000000350000100152500BM01007W0000 ... (5 Replies)
Discussion started by: arunkumar_mca
5 Replies

2. Shell Programming and Scripting

Joining the files with comparing the first column

Hi, I have two files in the following format. I am trying to compare the first column of both the files and if the values match the rows in file tst6 should be replaced in tst1. File tst1 S00823295|MIDDL|0|MR|019221521A||RL|STD|0|0||E S00862481|ESSEX|0|MR|018163650A||R|STD|0|0||E... (1 Reply)
Discussion started by: nua7
1 Replies

3. Shell Programming and Scripting

need to remove duplicates based on key in first column and pattern in last column

Given a file such as this I need to remove the duplicates. 00060011 PAUL BOWSTEIN ad_waq3_921_20100826_010517.txt 00060011 PAUL BOWSTEIN ad_waq3_921_20100827_010528.txt 0624-01 RUT CORPORATION ad_sade3_10_20100827_010528.txt 0624-01 RUT CORPORATION ... (13 Replies)
Discussion started by: script_op2a
13 Replies

4. Shell Programming and Scripting

Joining multiple files based on one column with different and similar values (shell or perl)

Hi, I have nine files looking similar to file1 & file2 below. File1: 1 ABCA1 1 ABCC8 1 ABR:N 1 ACACB 1 ACAP2 1 ACOT1 1 ACSBG 1 ACTR1 1 ACTRT 1 ADAMT 1 AEN:N 1 AKAP1File2: 1 A4GAL 1 ACTBL 1 ACTL7 (4 Replies)
Discussion started by: seqbiologist
4 Replies

5. Shell Programming and Scripting

"Join" or "Merge" more than 2 files into single output based on common key (column)

Hi All, I have working (Perl) code to combine 2 input files into a single output file using the join function that works to a point, but has the following limitations: 1. I am restrained to 2 input files only. 2. Only the "matched" fields are written out to the "matched" output file and... (1 Reply)
Discussion started by: Katabatic
1 Replies

6. UNIX for Dummies Questions & Answers

any script for joining files based on simple conditions

Condition1; If NPID and IndID of both input1 and input2 are same take all the vaues relevant to them and print together as output Condition2; IDNo in output: Take the highly repeated same letter of similar NPID-IndID as *1* Second highly repeated same letter... (0 Replies)
Discussion started by: stateperl
0 Replies

7. UNIX for Dummies Questions & Answers

Joining files based on multiple keys

I need a script (perl or awk..anything is fine) to join 3 files based on three key columns. The no of non-key columns can vary in each file. The columns are delimited by semicolon. For example, File1 Dim1;Dim2;Dim3;Fact1;Fact2;Fact3;Fact4;Fact5 ---- data delimited by semicolon --- ... (1 Reply)
Discussion started by: Sebben
1 Replies

8. Shell Programming and Scripting

Joining two files based on columns/fields

I've got two files, File1 and File2 File 1 has got combination of col1, col2 and col3 which comes on file2 as well, file2 does not get col4. Now based on col1, col2 and col3, I would like to get col4 from file1 and all the columns from file2 in a new file Any ideas? File1 ------ Col1 col2... (11 Replies)
Discussion started by: rudoraj
11 Replies

9. Shell Programming and Scripting

Joining columns from two files, if the key matches

I am trying to join/paste columns from two files for the rows with matching first field. Any help will be appreciated. Files can not be sorted and may not have all rows in both files. Thanks. File1 aaa 111 bbb 222 ccc 333 File2 aaa sss mmmm ccc kkkk llll ddd xxx yyy Want to... (1 Reply)
Discussion started by: sk_sd
1 Replies

10. Shell Programming and Scripting

merging two files based on some key

I have to merge two files: The files are having the same format like A0this is first line TOlast line silmilarly other lines. I have to search for A0 line in the second file also and then put the data in the third file under A0 heading ,then for A1 and so on. A0 portion will be treminated... (1 Reply)
Discussion started by: Vandana Yadav
1 Replies
Login or Register to Ask a Question