Joining files in a complex way


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Joining files in a complex way
# 1  
Old 03-05-2010
Joining files in a complex way

if input1 1st row labels (S1or S2 or S3 or any (actually so many in original text file)) are similar to 1st column of input2 i.e "ID" merge them together based on input1 1st row labels.
for example take S1.....

input1
Code:
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"     "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"     "A/A"    "G/G"    "G/G"

input2
Code:
"ID"    "Label"    "log"
"S1"    "xxx"    2.8
"S1"    "xxx"    3
"S1"    "xxx"    4
"S2"    "yyy"    6.8
"S2"    "yyy"    7
"S2"    "yyy"    7.4
"S2"    "yyy"    8
"S3"    "zzz"    12
"S3"    "zzz"    14
"S3"    "zzz"    16
"S3"    "zzz"    18
"S3"    "zzz"    20

output
Code:
"ID"    "Label"    "StYPE"    "Ntype"    "Stype_No"    "log"
"S1"    "xxx"    "A/A"    1    6    2.8
"S1"    "xxx"    "A/G"    2    2    3
"S1"    "xxx"    "G/G"    3    1    4
"S2"    "yyy"    "A/A"    1    1    6.8
"S2"    "yyy"    "A/G"    2    2    7
"S2"    "yyy"    "G/G"    3    6    7.4
"S2"    "yyy"    "NULL"    "null"    "null"    8
"S3"    "zzz"    "A/A"    1    3    12
"S3"    "zzz"    "A/G"    2    3    14
"S3"    "zzz"    "G/G"    3    3    16
"S3"    "zzz"    "NULL"    "null"    "null"    18
"S3"    "zzz"    "NULL"    "null"    "null"    20

4th column just prints 1 for A/A, 2 for A/G and 3 for G/G alphabets.(pink bold letters)
5th column in output.csv represnts number of time the alphabet corresponds specific label (S1-A/A=6 times, S1-A/G= 2 times and so on) repeated in input1.csv
6th column is just the corresponding S1/S2/S3 log values from input2. (S1 has 2.8,3 and 4)

Note: Null values are because of excess log values i.e there are log values but no Stype or Ntype etc... (S2 and S3 has excess log values and you can see them as null and logvalues in output)


Thanx in advance
Pearl

Last edited by stateperl; 03-05-2010 at 10:57 PM.. Reason: Wrong info in previous post and thanks to Tyler for pointing it out.
# 2  
Old 03-05-2010
Quote:
Originally Posted by stateperl
2 input files. input1.csv and input2.csv....

input2. csv 1st column merge with 2nd.3rd and 4th columns in input1.csv based on S1/S2/S3 and takes the corresponding alphabets from the input1.csv A/A or A/G or G/G.

So that give ID (S1/S2/S3), Label (xxx/yyy/zzz) and alphabets ( A/A or A/G or G/G) in output.csv ....1st,2nd,3rd columns.

4th column just prints 1 for A/A, 2 for A/G and 3 for G/G alphabets.
5th column in output.csv represnts number of time the alphabet repeated in input1.csv
6th column is just the corresponding log values from input2.

Thanx in advance
Pearl

Code:
oem@mintibm ~/Desktop/Temp_SNP $ cat input1.csv 
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"    "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"    "A/A"    "G/G"    "G/G"
oem@mintibm ~/Desktop/Temp_SNP $ cat input2.csv 
"ID"    "Label"    "log"
"S1"    "xxx"    2.8
"S1"    "xxx"    3
"S1"    "xxx"    4
"S2"    "yyy"    6.8
"S2"    "yyy"    7
"S2"    "yyy"    7.4
"S2"    "yyy"    8
"S3"    "zzz"    12
"S3"    "zzz"    14
"S3"    "zzz"    16
"S3"    "zzz"    18
"S3"    "zzz"    20
oem@mintibm ~/Desktop/Temp_SNP $ cat output_result.csv 
"ID"    "Label"    "StYPE"    "Ntype"    "Stype_No"    "log"
"S1"    "xxx"    "A/A"    1    6    2.8
"S1"    "xxx"    "A/G"    2    2    3
"S1"    "xxx"    "G/G"    3    1    4
"S2"    "yyy"    "A/A"    1    1    6.8
"S2"    "yyy"    "A/G"    2    2    7
"S2"    "yyy"    "G/G"    3    6    7.4
"S2"    "yyy"    "NULL"    "null"    "null"    8
"S3"    "zzz"    "A/A"    1    3    12
"S3"    "zzz"    "A/G"    2    3    14
"S3"    "zzz"    "G/G"    3    3    16
"S3"    "zzz"    "NULL"    "null"    "null"    18
"S3"    "zzz"    "NULL"    "null"    "null"    20

I don't think it's clear enough.

1) Are you doing a line-by-line comparison ? If yes, then what do you compare lines 10, 11 and 12 of input2.csv with ?

2) The following is not clear -

Quote:
input2. csv 1st column merge with 2nd.3rd and 4th columns in input1.csv based on S1/S2/S3 and takes the corresponding alphabets from the input1.csv A/A or A/G or G/G.
Let me take the first line of data in input2.csv -

Code:
"S1"    "xxx"    2.8

This is the output line you want -

Code:
"S1"    "xxx"    "A/A"    1    6    2.8

2a) If that "A/A" is due to "S1", then why is it not "A/A" in line 2 of output ?

2b) How did you get 6 for "Stype_No" ? If it is number of times "A" is repeated in line 1 of input1.csv, then what do you when you pick up "A/G" ?

Please take a the first few lines of input2.csv and explain how you got each of those fields in the output csv, or at least the fields - "Stype" and "Stype_No".

tyler_durden
# 3  
Old 03-05-2010
Code:
awk '
BEGIN {
  a[1] = "\"A/A\""
  a[2] = "\"A/G\""
  a[3] = "\"G/G\""
  OFS = "\t"
}
NR == FNR {
  if (NR == 1) {
    for (i = 2; i <= NF; ++i)
      s[i] = $i
    next
  }
  for (i = 2; i <= NF; ++i)
    ++b[s[i], $i]
  next
}
{
  $6 = $3
  if (FNR == 1) {
    $3 = "\"StYPE\""
    $4 = "\"Ntype\""
    $5 = "\"Stype_No\""
  } else {
    if ($1 == last) ++i
    else { last = $1; i = 1 }
    if (i in a) {
      $3 = a[i]
      $4 = i
      $5 = b[$1, a[i]]
    } else {
      $3 = "\"NULL\""
      $5 = $4 = "\"null\""
    }
  }
}
1
' input1.csv input2.csv

# 4  
Old 03-05-2010
@Tyler:::::Thank you for pointing it out. I edited the post above to explain the question better. Please take a look.
@binlib:::Amazing and clear code. Thanks alot! but a small bug in it. It's giving unnecessary values at the end (bold)
And one more thing. For suppose if I have multiple input2 files (with same IDs but different Stypes and log values ) and a single input1, is this code works the same??? if not could you please suggest me..
####
I tested with multiple input2files, its working but giving 2 separate outputs (outpu1 and output2). What I need is a single output (common output that adds all Ntypes together)

thanx
Pearl.

output
Code:
oem@mintibm ~/Desktop/Temp_SNP $ cat output.txt 
"ID"	"Label"	"StYPE"	"Ntype"	"Stype_No"	"log"
"S1"	"xxx"	"A/A"	1	6	2.8
"S1"	"xxx"	"A/G"	2	2	3
"S1"	"xxx"	"G/G"	3	1	4
"S2"	"yyy"	"A/A"	1	1	6.8
"S2"	"yyy"	"A/G"	2	2	7
"S2"	"yyy"	"G/G"	3	6	7.4
"S2"	"yyy"	"NULL"	"null"	"null"	8
"S3"	"zzz"	"A/A"	1	3	12
"S3"	"zzz"	"A/G"	2	3	14
"S3"	"zzz"	"G/G"	3	3	16
"S3"	"zzz"	"NULL"	"null"	"null"	18
"S3"	"zzz"	"NULL"	"null"	"null"	20
		"A/A"	1	


Last edited by stateperl; 03-05-2010 at 11:20 PM..
# 5  
Old 03-06-2010
Here's a Perl solution for this problem -

Code:
$ 
$ 
$ cat input1.csv
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"     "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"     "A/A"    "G/G"    "G/G"
$ 
$ cat input2.csv
"ID"    "Label"    "log"
"S1"    "xxx"    2.8
"S1"    "xxx"    3
"S1"    "xxx"    4
"S2"    "yyy"    6.8
"S2"    "yyy"    7
"S2"    "yyy"    7.4
"S2"    "yyy"    8
"S3"    "zzz"    12
"S3"    "zzz"    14
"S3"    "zzz"    16
"S3"    "zzz"    18
"S3"    "zzz"    20
$ 
$ cat combine.pl
#!/usr/bin/perl -w

my $infile1 = "input1.csv";
my @infile2 = qw(input2.csv);
my $outfile = "output.csv";

# define hashes - %chartonum, %numtochar and %mainhash
my %chartonum = qw(A/A 1 A/G 2 G/G 3);
my %numtochar = qw(1 A/A 2 A/G 3 G/G);
my %mainhash;

# first process input1.csv
open(INFILE, $infile1) or die "Can't open $infile1: $!";
while (<INFILE>) {
  chomp;
  s/"//g;
  s/[ ]+/ /g;
  if ($. == 1) {
    @x = split/ /;
  } else {
    @y = split/ /;
    foreach $i (1..$#y) {
      $mainhash{$x[$i].",".$chartonum{$y[$i]}}++;
    }
  }
}
close(INFILE) or die "Can't close $infile1: $!";

# print the header
printf("%-12s%-12s%-12s%-12s%-12s%-s\n","\"ID\"","\"Label\"","\"StYPE\"","\"Ntype\"","\"Stype_No\"","\"log\"");
# now start processing the set of input2.csv files
foreach $file2 (@infile2) {
  # open $file2
  open(INFILE, $file2) or die "Can't open $file2: $!";
  while (<INFILE>) {
    if ($. > 1) {
      chomp;
      s/"//g;
      s/[ ]+/ /g;
      # print $_,"\n";
      @z = split/ /;
      if (!defined $prev or $z[0] ne $prev) {$num = 1} else {$num++};
      $prev = $z[0];
      printf("%-12s%-12s%-12s%-12s%-12s%-s\n",
             "\"$z[0]\"",
             "\"$z[1]\"",
             defined $numtochar{$num} ? "\"$numtochar{$num}\"" : "\"NULL\"",
             exists $numtochar{$num} ? $num : "\"null\"",
             defined $mainhash{$z[0].",".$num} ? $mainhash{$z[0].",".$num} : "\"null\"", 
             $z[2]
            );
    }
  }
  close(INFILE) or die "Can't close $file2: $!";
}

$ 
$ perl combine.pl
"ID"        "Label"     "StYPE"     "Ntype"     "Stype_No"  "log"
"S1"        "xxx"       "A/A"       1           6           2.8
"S1"        "xxx"       "A/G"       2           2           3
"S1"        "xxx"       "G/G"       3           1           4
"S2"        "yyy"       "A/A"       1           1           6.8
"S2"        "yyy"       "A/G"       2           2           7
"S2"        "yyy"       "G/G"       3           6           7.4
"S2"        "yyy"       "NULL"      "null"      "null"      8
"S3"        "zzz"       "A/A"       1           3           12
"S3"        "zzz"       "A/G"       2           3           14
"S3"        "zzz"       "G/G"       3           3           16
"S3"        "zzz"       "NULL"      "null"      "null"      18
"S3"        "zzz"       "NULL"      "null"      "null"      20
$ 
$

Quote:
Originally Posted by stateperl
...For suppose if I have multiple input2 files (with same IDs but different Stypes and log values ) and a single input1,
...
What I need is a single output (common output that adds all Ntypes together)
...
Show an example of how the output would be affected in case of multiple input2.csv files.

While ID and Label may be the same, the values of "log" could be different in different input2.csv files.
The values of Stype, Ntype, Stype_No would remain the same since they depend on input1.csv file. What do you want to do with multiple "log" values then ?
If we just append the records of the next input2.csv, then I'd think the values of Stype, Ntype and Stype_No would be NULL, since they show up only for the first 3 rows.

tyler_durden
# 6  
Old 03-06-2010
Here is an example

@Tyler: Thanx for perl script. It looking bit scary to me but as smart as awk.Smilie
**********************************************************************************************

It's multiple input1 files and a single input2 file. In this we need to sum up all the Stype_No from input1a,b,c files.Mentioned in bold. so it should work like this.
Note; To make it easy for you I just used same copies of input1 files (a,b and c) but in real cases the number od A/A or others may vary and also the number of input1 files may be greater than just 3 (it could be input a,b,c,d or ....).

Code:
perl script.pl input1a input1b input1c input2 >>output



input1a
Code:
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"     "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"     "A/A"    "G/G"    "G/G"

input1b
Code:
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"     "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"     "A/A"    "G/G"    "G/G"

input1c
Code:
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"     "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"     "A/A"    "G/G"    "G/G"


input2
Code:
"ID"    "Label"    "log"
"S1"    "xxx"    2.8
"S1"    "xxx"    3
"S1"    "xxx"    4
"S2"    "yyy"    6.8
"S2"    "yyy"    7
"S2"    "yyy"    7.4
"S2"    "yyy"    8
"S3"    "zzz"    12
"S3"    "zzz"    14
"S3"    "zzz"    16
"S3"    "zzz"    18
"S3"    "zzz"    20

ouput
Code:
"ID"        "Label"     "StYPE"     "Ntype"     "Stype_No"  "log"
"S1"        "xxx"       "A/A"       1           18           2.8
"S1"        "xxx"       "A/G"       2           6           3
"S1"        "xxx"       "G/G"       3           3           4
"S2"        "yyy"       "A/A"       1           3           6.8
"S2"        "yyy"       "A/G"       2           6           7
"S2"        "yyy"       "G/G"       3           18          7.4
"S2"        "yyy"       "NULL"      "null"      "null"      8
"S3"        "zzz"       "A/A"       1           9           12
"S3"        "zzz"       "A/G"       2           9           14
"S3"        "zzz"       "G/G"       3           9           16
"S3"        "zzz"       "NULL"      "null"      "null"      18
"S3"        "zzz"       "NULL"      "null"      "null"      20


Last edited by stateperl; 03-06-2010 at 04:50 AM..
# 7  
Old 03-06-2010
Thanks for the explanation and example.
The base code remains the same; I've added the capability to accept arguments from command line, fill up an array for "input1" files and process each file in it i.e. each array element.

Code:
$ 
$ cat input1a
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"     "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"     "A/A"    "G/G"    "G/G"
$ 
$ cat input1b
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"     "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"     "A/A"    "G/G"    "G/G"
$ 
$ cat input1c
"aphab"    "S1"    "S2"    "S3"
"a"    "A/A"    "A/A"    "A/A"
"b"    "A/G"    "A/G"    "A/A"
"c"    "A/A"    "G/G"    "A/A"
"d"    "G/G"    "A/G"    "A/G"
"e"    "A/G"    "G/G"    "A/G"
"f"     "A/A"    "G/G"    "A/G"
"g"    "A/A"    "G/G"    "G/G"
"h"    "A/A"    "G/G"    "G/G"
"I"     "A/A"    "G/G"    "G/G"
$ 
$ cat combine.pl
#!/usr/bin/perl -w

# check that at least 2 arguments are passed to this program
# exit with error code 1 otherwise
if ($#ARGV < 1) {
  print "Usage:   perl combine.pl <list of input files separated by space> input2\n";
  print "Example: perl combine.pl input1a input1b input1c input2\n";
  exit 1;
}

# now assign the list of "input1" file names to array @infile1
foreach (0..$#ARGV-1) {
  push @infile1, $ARGV[$_];
}
# set the variable $infile2 to the last argument i.e. the "input2" file
$infile2 = $ARGV[$#ARGV];

# define hashes - %chartonum, %numtochar and %mainhash
my %chartonum = qw(A/A 1 A/G 2 G/G 3);
my %numtochar = qw(1 A/A 2 A/G 3 G/G);
my %mainhash;

# first process all "input1" files i.e. all elements of the array @infile1
foreach $file1 (@infile1) {
  open(INFILE, $file1) or die "Can't open $file1: $!";
  while (<INFILE>) {
    chomp;
    s/"//g;
    s/[ ]+/ /g;
    if ($. == 1) {
      @x = split/ /;
    } else {
      @y = split/ /;
      foreach $i (1..$#y) {
        $mainhash{$x[$i].",".$chartonum{$y[$i]}}++;
      }
    }
  }
  close(INFILE) or die "Can't close $file1: $!";
}

# print the header
printf("%-12s%-12s%-12s%-12s%-12s%-s\n","\"ID\"","\"Label\"","\"StYPE\"","\"Ntype\"","\"Stype_No\"","\"log\"");
# now start processing the "input2" file
open(INFILE, $infile2) or die "Can't open $infile2: $!";
while (<INFILE>) {
  if ($. > 1) {
    chomp;
    s/"//g;
    s/[ ]+/ /g;
    # print $_,"\n";
    @z = split/ /;
    if (!defined $prev or $z[0] ne $prev) {$num = 1} else {$num++};
    $prev = $z[0];
    printf("%-12s%-12s%-12s%-12s%-12s%-s\n",
           "\"$z[0]\"",
           "\"$z[1]\"",
           defined $numtochar{$num} ? "\"$numtochar{$num}\"" : "\"NULL\"",
           exists $numtochar{$num} ? $num : "\"null\"",
           defined $mainhash{$z[0].",".$num} ? $mainhash{$z[0].",".$num} : "\"null\"", 
           $z[2]
          );
  }
}
close(INFILE) or die "Can't close $infile2: $!";

$ 
$ # Error checking - incorrect number of arguments
$ 
$ perl combine.pl
Usage:   perl combine.pl <list of input files separated by space> input2
Example: perl combine.pl input1a input1b input1c input2
$ 
$ perl combine.pl input1a
Usage:   perl combine.pl <list of input files separated by space> input2
Example: perl combine.pl input1a input1b input1c input2
$ 
$ perl combine.pl input2
Usage:   perl combine.pl <list of input files separated by space> input2
Example: perl combine.pl input1a input1b input1c input2
$ 
$ echo $?
1
$ 
$ # Successful run
$ 
$ perl combine.pl input1a input1b input1c input2
"ID"        "Label"     "StYPE"     "Ntype"     "Stype_No"  "log"
"S1"        "xxx"       "A/A"       1           18          2.8
"S1"        "xxx"       "A/G"       2           6           3
"S1"        "xxx"       "G/G"       3           3           4
"S2"        "yyy"       "A/A"       1           3           6.8
"S2"        "yyy"       "A/G"       2           6           7
"S2"        "yyy"       "G/G"       3           18          7.4
"S2"        "yyy"       "NULL"      "null"      "null"      8
"S3"        "zzz"       "A/A"       1           9           12
"S3"        "zzz"       "A/G"       2           9           14
"S3"        "zzz"       "G/G"       3           9           16
"S3"        "zzz"       "NULL"      "null"      "null"      18
"S3"        "zzz"       "NULL"      "null"      "null"      20
$ 
$ echo $?
0
$ 
$

HTH,
tyler_durden

Last edited by durden_tyler; 03-06-2010 at 03:19 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Please help me in joining two files

I have two files with the below contents : sampleoutput3.txt 20150202;hostname1 20150223;hostname2 20150716;hostname3 sampleoutput1.txt hostname;packages_out_of_date;errata_out_of_date; hostname1;11;0; hostnamea;12;0; hostnameb;11;0; hostnamec;95;38; hostnamed;440;358;... (2 Replies)
Discussion started by: rahul2662
2 Replies

2. Shell Programming and Scripting

Joining 2 Files

File "A" (column names: Nickname Number GB) Nickname Number GB PROD_DB0034 100A 16 ASMIL1B_DATA_003 100B 16 PSPROD_0000 1014 36 PSPROD_0001 100D 223 ..... File "B" (column names: TYPE DEVICE NUMBER SIZE) TYPE DEVICE NUMBER SIZE 1750500 hdisk2 100A 16384 1750500 hdisk3 ... (4 Replies)
Discussion started by: Daniel Gate
4 Replies

3. Shell Programming and Scripting

Help with joining files and adding headers to files

Hi, I have about 20 tab delimited text files that have non sequential numbering such as: UCD2.summary.txt UCD45.summary.txt UCD56.summery.txt The first column of each file has the same number of lines and content. The next 2 column have data points: i.e UCD2.summary.txt: a 8.9 ... (8 Replies)
Discussion started by: rrdavis
8 Replies

4. Shell Programming and Scripting

Joining two files into one

Hi experts, I'm quite newbie here!! I have two seperate files. Contents of file like below File 1: 6213019212001 8063737 File:2 15703784 I want to join these two files into one where content will be File 3: 6213019212001 8063737 15703784 Regards, Ray Seilden (1 Reply)
Discussion started by: RayanS
1 Replies

5. UNIX for Dummies Questions & Answers

Joining two files

I have two comma separated files. I want to join those filesa nd put the result in separate file. smaple data are: file1: A1,1,100 A2,1,200 B1,2,100 B2,2,200 file2 1,50 1,25 1,25 1,100 1,100 2,50 2,50 (10 Replies)
Discussion started by: pandeesh
10 Replies

6. Shell Programming and Scripting

Joining Three Files

Hi guys, I have three files which needs to be joined to a single file. File 1: Col a, Col b, Col c File 2: Col 1a, Col 1b File 3: Col 2a, Col 2b Output: Col 1a, Col 2a, Col a, Col b, Col c. All the files are comma delimited. I need to join Col b with Col 1b and need to... (17 Replies)
Discussion started by: mac4rfree
17 Replies

7. Shell Programming and Scripting

joining two or more files

i have three files file a has contents 123 234 238 file b has contents 189 567 567 and file c has contents qwe ert ery (1 Reply)
Discussion started by: tomjones
1 Replies

8. Shell Programming and Scripting

Help with joining two files

Greetings, all. I've got a project that requires I join two data files together, then do some processing and output. Everything must be done in a shell script, using standard unix tools. The files look like the following: File_1 Layout: Acct#,Subacct#,Descrip Sample: ... (3 Replies)
Discussion started by: rjlohman
3 Replies

9. UNIX for Dummies Questions & Answers

joining 2 files

Hi, I have two files that I need to find difference between. Do I use diff or join? If join, how do I use it? thanks, webtekie (1 Reply)
Discussion started by: webtekie
1 Replies
Login or Register to Ask a Question