Personnellement, mon préféré (nécessite bash et d’autres fonctions standard sur la plupart des distributions Linux)
Les détails peuvent beaucoup dépendre de ce que les deux choses génèrent et comment vous voulez les fusionner ...
Contenu de commande1 et commande2 l'un après l'autre dans la sortie:
cat <(command1) <(command2) > outputfile
Ou si les deux commandes génèrent des versions alternatives des mêmes données que celles que vous voulez voir côte à côte (je l'ai utilisé avec snmpwalk; les chiffres d'un côté et les noms de MIB de l'autre):
paste <(command1) <(command2) > outputfile
Ou si vous souhaitez comparer le résultat de deux commandes similaires (par exemple, une recherche sur deux répertoires différents)
diff <(command1) <(command2) > outputfile
Ou si elles sont ordonnées des sorties, les fusionner:
sort -m <(command1) <(command2) > outputfile
Ou exécutez les deux commandes à la fois (vous pourriez toutefois brouiller un peu les choses):
cat <(command1 & command2) > outputfile
L'opérateur <() configure un canal nommé (ou / dev / fd) pour chaque commande, en canalisant la sortie de cette commande dans le canal nommé (ou la référence de fichier / dev / fd) et passe le nom sur la ligne de commande. Il y a un équivalent avec> (). Vous pouvez faire: command0 | tee >(command1) >(command2) >(command3) | command4
envoyer simultanément le résultat d’une commande à 4 autres commandes, par exemple.