Personalmente, il mio preferito (richiede bash e altre cose standard nella maggior parte delle distribuzioni Linux)
I dettagli possono dipendere molto dall'output delle due cose e da come si desidera unirle ...
Contenuto di command1 e command2 uno dopo l'altro nell'output:
cat <(command1) <(command2) > outputfile
O se entrambi i comandi generano versioni alternative degli stessi dati che si desidera vedere fianco a fianco (l'ho usato con snmpwalk; numeri su un lato e nomi MIB sull'altro):
paste <(command1) <(command2) > outputfile
O se vuoi confrontare l'output di due comandi simili (dì una ricerca su due diverse directory)
diff <(command1) <(command2) > outputfile
O se vengono ordinati output di qualche tipo, uniscili:
sort -m <(command1) <(command2) > outputfile
Oppure esegui entrambi i comandi contemporaneamente (potrebbe mescolare un po 'le cose, però):
cat <(command1 & command2) > outputfile
L'operatore <() imposta una pipe denominata (o / dev / fd) per ciascun comando, eseguendo il piping dell'output di quel comando nella pipe denominata (o riferimento al filehandle / dev / fd) e passa il nome sulla riga di comando. C'è un equivalente con> (). Potresti fare: command0 | tee >(command1) >(command2) >(command3) | command4
per inviare simultaneamente l'output di un comando ad altri 4 comandi, ad esempio.