¿Cómo redirigir tuberías paralelas en bash?

¿Cómo redirigir tuberías paralelas en bash?

Esto no funciona:

   $ head file | tee >(sort >&3) | paste <(cat <&3) -
   bash: 3: Bad file descriptor

pero espero que sea obvio lo que pretende hacer, el equivalente a:

   $ head file | sort >temp1
   $ head file >temp2
   $ paste temp1 temp2

¿Cuál es la forma correcta de crear y utilizar esa tubería paralela?

(Supongamos que "cabeza" representa una operación costosa y soy consciente de los peligros de un punto muerto).

Respuesta1

Descubrí que crear explícitamente otra tubería primero hace lo que quería hacer:

$ pipe3="$$.pipe3"
$ mkfifo $pipe3
...
$ head file_1 | tee >(sort >$pipe3) | (sleep 1; paste <(cat <$pipe3) - )
...
$ tail file_2 | tee >(sort -r >$pipe3) | (sleep 1; paste <(cat <$pipe3) - )
...
$ rm $pipe3

Sin embargo, la necesidad de "dormir" y el uso de "$pipe3" en lugar de "&3" lo hace un poco menos elegante.

información relacionada