GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter des commandes à partir d'une entrée standard à l'aide de Tee et Xargs sous Linux

Lorsque vous utilisez la ligne de commande, vous pouvez directement passer la sortie d'un programme (par exemple, un outil qui génère des informations système ou des statistiques) comme entrée pour un autre programme (comme le filtrage de texte ou des outils de recherche de modèles comme grep, sed ou awk, pour un traitement ultérieur), à l'aide d'un pipeline.

Lire aussi  :Découvrez les bases du fonctionnement de la redirection d'E/S (entrée/sortie) Linux

Deux des utilitaires de ligne de commande les plus importants pouvant être utilisés avec des pipelines pour créer des lignes de commande sont :

  • xargs - lit des flux de données à partir d'une entrée standard, puis génère et exécute des lignes de commande.
  • tee – lit à partir de l'entrée standard et écrit simultanément sur la sortie standard et un ou plusieurs fichiers. Il s'agit plutôt d'une commande de redirection.

Dans cet article simple, nous décrirons comment créer et exécuter plusieurs commandes à partir d'une entrée standard à l'aide de tubes , et xargs commandes sous Linux.

La syntaxe la plus simple pour utiliser un tube , que vous avez peut-être déjà vu dans les commandes de nombreux didacticiels Linux, est la suivante. Mais vous pouvez créer une ligne de commande plus longue avec plusieurs commandes.

$ command1 args | command2 args 
OR
# command1 args | command2 args | command3 args ...

Vous trouverez ci-dessous un exemple d'utilisation d'un pipeline pour transmettre la sortie de la commande dmesg à la commande head.

$ dmesg | head

Comment utiliser xargs pour exécuter des commandes

Dans cet exemple, la deuxième commande convertit la sortie multiligne en une seule ligne à l'aide de xargs.

$ ls -1 *.sh
$ ls -1 *.sh | xargs

Pour compter le nombre de lignes/mots/caractères dans chaque fichier d'une liste, utilisez les commandes ci-dessous.

$ ls *.sh | xargs wc -l	    #count number of lines in each file
$ ls *.sh | xargs wc -w	    #count number of words in each file
$ ls *.sh | xargs wc -c	    #count number of characters in each file
$ ls *.sh | xargs wc	    #count lines, words and characters in each file

La commande ci-dessous trouve et supprime récursivement le répertoire nommé All dans le répertoire courant.

$ find . -name "All" -type d -print0 | xargs  -0 /bin/rm -rf "{}"

La commande find avec l'option -print0 l'action active l'impression du chemin complet du répertoire sur la sortie standard, suivi d'un caractère nul et de -0 xargs flag traite de l'espace dans les noms de fichiers.

Vous pouvez trouver d'autres commandes xargs pratiques exemples d'utilisation dans ces articles :

  1. Comment copier un fichier dans plusieurs répertoires sous Linux
  2. Renommer tous les fichiers et noms de répertoires en minuscules sous Linux
  3. 4 façons de convertir par lots votre PNG en JPG et vice-versa
  4. 3 façons de supprimer tous les fichiers d'un répertoire sauf un ou quelques fichiers avec des extensions

Comment utiliser Tee avec des commandes sous Linux

Cet exemple montre comment envoyer la sortie de la commande vers la sortie standard et l'enregistrer dans un fichier ; la commande ci-dessous vous permet d'afficher les principaux processus en cours d'exécution en fonction de l'utilisation maximale de la mémoire et du processeur sous Linux.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt
$ cat  topprocs.txt

Pour ajouter des données dans un ou plusieurs fichiers existants, passez le -a drapeau.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt 

Vous pouvez trouver plus d'informations dans tee et xargs pages de manuel.

$ man xargs
$ man tee

C'est tout! N'oubliez pas de consulter notre article spécial :Commandes Linux A - Z - Présentation avec exemples.

Dans cet article, nous avons décrit comment générer des lignes de commande à l'aide de pipelines ; commandes xargs et tee. Vous pouvez poser des questions ou partager des réflexions via le formulaire de commentaires ci-dessous.


Linux
  1. 10 utilisations étonnantes et mystérieuses du symbole (!) ou de l'opérateur dans les commandes Linux

  2. Comment enregistrer les commandes Linux et les utiliser à la demande

  3. Commandes Linux :jobs, bg et fg

  4. Linux - Comment exécuter un chargeur de démarrage à partir de Linux ?

  5. Comment vérifier le système d'exploitation et la version à l'aide d'une commande Linux

Comment corriger les erreurs et les fautes de frappe dans les commandes de console précédentes sous Linux

Comment exécuter des applications Linux sur Windows 10 et 11 à l'aide de WSL

Comment exécuter une commande périodiquement sous Linux à l'aide de Watch

Comment exécuter plusieurs commandes Linux en une seule commande

Comment cloner et restaurer une partition Linux à l'aide de la commande dd

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux