GNU/Linux >> Tutoriels Linux >  >> Linux

Combinez plusieurs commandes Unix en une seule sortie

Une autre façon est

{ grep ...; bzgrep ...;} >file

&& a la difficulté que le bzgrep ne serait pas exécuté si le grep échoué.

Notez l'espace obligatoire après l'accolade ouvrante et le point-virgule après la dernière commande. Alternativement, vous pouvez utiliser la syntaxe du sous-shell (parenthèses au lieu d'accolades), qui n'est pas aussi difficile :

(grep ...; bzgrep ...) >file

bzgrep utilise automatiquement par défaut grep normal si un fichier n'est pas compressé par bzip. Ainsi, ce qui suit devrait suffire :

bzgrep [email protected] maillog *bz2 | mail -s "logs yay" [email protected]

oh bien sûr, voici aussi ma solution GNU Parallel obligatoire :

parallel -m bzgrep [email protected] ::: maillog* *bz2 | mail -s "logs yay" [email protected]

ce qui pourrait être beaucoup plus rapide si vous vérifiez beaucoup de fichiers.


Voici une autre façon de procéder (en supposant que vous utilisez bash, ce que vous faites probablement) :

cat <(bzgrep ...) <(grep ...)

Ici, bash alimente de manière transparente la sortie des commandes bzgrep et grep dans cat comme s'il s'agissait de fichiers (et ils sont en quelque sorte sous le capot, les détails dans l'url en bas).

Dans votre cas particulier, je recommanderais la solution de Phil, mais ce qui précède est une bonne astuce à garder dans votre sac.

Si vous êtes intéressé, vous pouvez en savoir plus ici :http://www.tldp.org/LDP/abs/html/process-sub.html


Linux
  1. Comment fusionner plusieurs connexions Internet en une seule ?

  2. Exécuter combiner plusieurs commandes Linux en une seule ligne

  3. Comment ajouter le contenu de plusieurs fichiers dans un seul fichier

  4. Comment passer la sortie de la commande sous forme d'arguments multiples à une autre commande

  5. Comment compresser plusieurs fichiers dans un seul fichier gz?

Comment joindre plusieurs lignes en une seule dans un fichier sous Linux

Comment exécuter plusieurs commandes Linux en une seule commande

Comment fusionner plusieurs fichiers PDF en un seul PDF sous Linux

Comment joindre/fusionner plusieurs fichiers audio en un seul sous Linux

Envoi de "ps" sur plusieurs serveurs, sortie vers un seul fichier texte ?

3 méthodes pour afficher la sortie tail -f de plusieurs fichiers journaux dans un terminal