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
    What have you tried? since your first column appears to be lexically sorted, it should be trivial using the join command – steeldriver Oct 19 '19 at 12:56
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, ...

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.