In a post's answer on superuser.com, we see that
join <(sort abc) <(sort bcd)
will sort files abc and bcd before sending them to join. This leads to a programming question, better suited for stackoverflow.
How does this work? What exactly is this <() construct? What's it called?
If (sort abc) is a legal call that runs sort on abc and returns output, why do we need the <
?
That is, the following two lines are equivalent
(sort abc) | join - <(sort bcd)
join <(sort abc) <(sort bcd)
but
join (sort abc) (sort bcd)
is a syntax error. Please clue me in!