Est-il possible dans unix / bash de canaliser la sortie de deux commandes dans une autre?
J'ai essayé d'exécuter la commande suivante, qui a réussi à exécuter les deux commandes, mais la première était transmise à stdout et la seconde à lessive.
$ grep 40515575 * && zgrep 40515575 * | less
{ grep 40515575 * && zgrep 40515575 *; } | less
. BTW, il semble que vous voulez plutôt:{ grep 40515575 *; zgrep 40515575 *; } | less
{}
et;
celle-ci répondent-elles? Ou est-ce juste deux manières différentes de dire la même chose?( command )
. Deuxièmement,command1 && command2
implique quecommand2
ne serait exécuté que s'il étaitcommand1
quitté avec un code de retour de 0. D'autre part,command1; command2;
implique que les deux commandes seraient exécutées.Réponses:
Essayez ceci à la place:
la source
{ grep 40515575 *; zgrep 40515575 *; } | less
car il n'a pas besoin d'appeler un sous-shell, et il fait toujours les deux grep (même si le premier n'a trouvé "40515575" dans aucun des fichiers). Les vôtres (et les OP) rateraient tout "40515575" s'ils ne sont présents que dans des fichiers compressés, et non des fichiers normaux, car le premier grep renverrait alors "faux".&&
avec||
permettrait de résoudre l'un des problèmes, n'est-ce pas? Quoi qu'il en soit, aucune idée de ce qu'est un sous-shell ou pourquoi je devrais l'éviter ...: pgrep 40515575 * && zgrep 40515575 *
exécute la deuxième commande (zgrep
) UNIQUEMENT si la première réussit (c'est-à-dire trouve quelque chose). D'autre partgrep 40515575 * || zgrep 40515575 *
exécute la deuxième commande SEULEMENT si la première échoue (ie ne trouve rien). Si vous voulez que la deuxième commande soit exécutée avec succès ou non, utilisez un point-virgule.Selon le système, vous pouvez constater que «moins» est capable de reconnaître plusieurs types de fichiers différents, tels que les fichiers compressés gzip et bzip2.
Peut-être que ce que vous voulez vraiment dire est ceci:
Il est utile de rappeler que dans ce cas, le "moins" initial se comporte comme un "chat", car sa sortie n’est pas destinée à un ATS.
la source