Diff la salida de dos commands `awk`

Estoy tratando de calcular la diferencia entre la salida de dos commands awk , pero mis bashs simples parecen estar fallando. Esto es lo que estoy intentando:

 diff $(awk '{print $3}' f1.txt | sort -u) $(awk '{print $2}' f2.txt | sort -u) 

Esto no funciona por razones desconocidas para mí. Estaba bajo la suposition de que el constructo $() se utilizó para capturar el resultado de otro command, pero mi invocación "diff" no reconoce las dos inputs que se le asignaron. ¿Hay alguna manera de que pueda hacer que esto funcione?

Por cierto, no puedo usar la solución obvia de escribir el resultado de esos dos commands para separar files dado que estoy conectado a una caja de producción sin privilegios de "escritura".

diff espera los nombres de dos files, por lo que debe poner los dos resultados en dos files y luego compararlos:

 awk '{print $3}' f1.txt | sort -u > out1 awk '{print $2}' f2.txt | sort -u > out2 diff out1 out2 

o, usando ksh93, bash o zsh, puedes engañar a diff con el command:

 diff <(awk '{print $3}' f1.txt | sort -u) <(awk '{print $2}' f2.txt | sort -u)