1

Can someone please help me with below. I have two different files and I need to join the files but with some condition.

File1

ABC,10,20,3
GHI,8,6,2

File2

ABC,5000
DEF,6000
GHI,1000

Required output is as below

All columns of file1 + 2nd column of file2 where 1st column of file 1 matches with 1st column of file 2

Output expected

ABC,10,20,3,5000
GHI,8,6,2,1000
1
  • 1
    What have you tried? since your first column appears to be lexically sorted, it should be trivial using the join command Oct 19, 2019 at 12:56

1 Answer 1

1
join -t',' -1 1 -2 1 -o 1.1,1.2,1.3,1.4,2.2 <(sort FILE1) <(sort FILE2)

ABC,10,20,3,5000
GHI,8,6,2,1000
  • Field separator (t) = ','
  • join -1 1 = FILE1 column 1, -2 1 = FILE2 column 1

  • -o = output, 1.1 = FILE1.column 1, ...

1
  • Or for the lazy ones: join -t',' <(sort FILE1) <(sort FILE2)
    – Freddy
    Oct 19, 2019 at 17:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .