Personnellement, mon favori (nécessite bash et d'autres choses qui sont standard sur la plupart des distributions Linux)
Les détails peuvent beaucoup dépendre de ce que les deux choses produisent et de la façon dont vous souhaitez les fusionner ...
Contenu de command1 et command2 l'un après l'autre dans la sortie :
cat <(command1) <(command2) > fichier_de_sortie
Ou si les deux commandes produisent des versions alternatives des mêmes données que vous souhaitez voir côte à côte (j'ai utilisé cela avec snmpwalk ; les nombres d'un côté et les noms MIB de l'autre) :
paste <(command1) <(command2) > fichier_de_sortie
Ou si vous souhaitez comparer la sortie de deux commandes similaires (disons une recherche sur deux répertoires différents)
diff <(command1) <(command2) > fichier_de_sortie
Ou s'ils sont des sorties ordonnées d'une certaine manière, fusionnez-les :
sort -m <(command1) <(command2) > fichier_de_sortie
Ou exécutez les deux commandes en même temps (cela pourrait mélanger un peu les choses, cependant) :
cat <(command1 & command2) > fichier_de_sortie
L'opérateur <() met en place un tube nommé (ou /dev/fd) pour chaque commande, redirigeant la sortie de cette commande dans le tube nommé (ou la référence de fichier /dev/fd) et transmettant le nom sur la ligne de commande. Il y a un équivalent avec >(). Vous pourriez faire : command0 | tee >(command1) >(command2) >(command3) | command4
pour envoyer simultanément la sortie d'une commande à 4 autres commandes, par exemple.