Unix join on multiple fields on two files [closed]
This also seems to work:
$ sed 's/|/\t/2' 1.txt > 1_1.txt; sed 's/|/\t/2' 2.txt > 2_1.txt;$ join -j1 1_1.txt 2_1.txt | tr ' ' '|'$ rm 1_1.txt 2_1.txt
A one-liner without temporary file creation (thanks to @dbaupp):
$ join -j1 <(sed 's/|/\t/2' 1.txt) <(sed 's/|/\t/2' 2.txt) | tr ' ' '|'