Personnellement, mon préféré (nécessite bash et d'autres choses qui sont standard sur la plupart des distributions Linux)
Les détails peuvent dépendre beaucoup de ce que les deux choses produisent et de la façon dont vous voulez les fusionner ...
Contenu de la commande1 et de la commande2 après l'autre dans la sortie :
cat <(command1) <(command2) > outputfile
Ou si les deux commandes produisent des versions alternatives des mêmes données que vous voulez voir côte à côte (j'ai utilisé ceci avec snmpwalk ; les nombres d'un côté et les noms de MIB de l'autre) :
paste <(command1) <(command2) > outputfile
Ou si vous souhaitez comparer les résultats de deux commandes similaires (par exemple une recherche dans deux répertoires différents).
diff <(command1) <(command2) > outputfile
Ou s'il s'agit de sorties ordonnées d'une sorte, fusionnez-les :
sort -m <(command1) <(command2) > outputfile
Ou lancez les deux commandes en même temps (ce qui pourrait brouiller un peu les choses, cependant) :
cat <(command1 & command2) > outputfile
L'opérateur <() configure un tuyau nommé (ou /dev/fd) pour chaque commande, en acheminant la sortie de cette commande dans le tuyau nommé (ou la référence au gestionnaire de fichier /dev/fd) et en transmettant le nom sur la ligne de commande. Il existe un équivalent avec >(). Vous pourriez le faire : command0 | tee >(command1) >(command2) >(command3) | command4
pour envoyer simultanément la sortie d'une commande à 4 autres commandes, par exemple.