Chaîner plusieurs commandes
Fait partie de la section Les fondamentaux du Journey Terminal de Coddy — leçon 45 sur 82.
Vous n'êtes pas limité à la connexion de seulement deux commandes. Les pipes peuvent enchaîner autant de commandes que vous le souhaitez, chacune traitant la sortie de la commande précédente.
Ajoutez simplement plus de symboles | pour étendre le pipeline :
cat data.txt | sort | head -5Ceci lit le fichier, trie toutes les lignes par ordre alphabétique, puis affiche seulement les 5 premiers résultats. Les données circulent de gauche à droite à travers chaque commande en séquence.
Voici un exemple pratique qui trouve des entrées triées uniques :
cat names.txt | sort | uniqLe contenu du fichier est d'abord trié (ce qui regroupe les doublons), puis uniq supprime les lignes dupliquées consécutives. L'ordre est important ici — uniq ne supprime que les doublons adjacents, le tri doit donc être effectué en premier.
Vous pouvez ajouter encore plus d'étapes. Pour compter combien de noms uniques existent :
cat names.txt | sort | uniq | wc -lChaque pipe ajoute une étape de transformation supplémentaire. Lors de la construction de pipelines plus longs, réfléchissez à ce dont chaque commande a besoin en entrée et à ce qu'elle produit en sortie. Le format de sortie d'une commande doit être cohérent avec l'entrée de la suivante.
Défi
FacileLe fichier visitors.txt contient une liste de noms de visiteurs avec des doublons. Utilisez un pipeline avec trois commandes pour compter le nombre de visiteurs uniques.
Exécutez une seule commande qui :
- Utilise
catpour lirevisitors.txt - Utilise un pipe vers
sortpour organiser les noms par ordre alphabétique - Utilise un pipe vers
uniqpour supprimer les entrées en double - Utilise un pipe vers
wc -lpour compter les noms uniques
Conseil : Enchaînez les quatre commandes ensemble en utilisant plusieurs symboles
|. Rappelez-vous queuniqne supprime que les doublons adjacents, le tri doit donc être effectué avant.
Aide-mémoire
Les tubes (pipes) permettent d'enchaîner plusieurs commandes, chaque commande traitant la sortie de la précédente. Utilisez le symbole | pour connecter les commandes :
cat data.txt | sort | head -5Les données circulent de gauche à droite à travers chaque commande successivement.
Pour trouver des entrées triées uniques :
cat names.txt | sort | uniqLa commande uniq supprime les lignes en double consécutives, le tri doit donc être effectué en premier pour regrouper les doublons.
Pour compter les entrées uniques, ajoutez wc -l au pipeline :
cat names.txt | sort | uniq | wc -lLors de la construction de pipelines, assurez-vous que le format de sortie d'une commande est cohérent en tant qu'entrée pour la suivante.
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
4Répertoires
Créer Un RépertoireCopier Un RépertoireDéplacer Et Renommer Un RépertoireSupprimer Un RépertoireRécapitulatif - Opérations Sur Les Répertoires7Contenu de fichier
Head et TailComptage de motsCommande SortCommande UniqBases de GrepGrep avec optionsRécap - Détective de texte10Projet Analyseur de Journaux
Aperçu du ProjetAffichage du Fichier Journal2Navigation
Afficher le répertoire de travailLister les fichiersChanger de répertoireChemins absolus vs relatifsRépertoire personnel et racineRécap - Trouver son chemin5Projet Organiser les Photos
Aperçu du ProjetCréation de la Structure8Redirection
Sortie standardÉcraser vers un fichierAjouter à un fichierEntrée standardErreur standardRécapitulatif - Constructeur de logs11Permissions
Comprendre les permissionsLire les permissionsChmod avec des nombresChmod avec des symbolesPropriété des fichiersRécapitulatif - Verrouillez tout14Projet de Script de Sauvegarde
Aperçu du ProjetObtenir le Chemin Source3Fichiers
Créer Un FichierLire Un FichierCopier Un FichierDéplacer Et Renommer Un FichierSupprimer Un FichierRécapitulatif - Opérations Sur Les Fichiers6Caractères jokers et motifs
Le joker étoileLe joker point d'interrogationJokers entre crochetsCombiner les jokersRécapitulatif - Opérations sélectives9Les pipes
Qu'est-ce qu'une pipe ?Chaîner deux commandesChaîner plusieurs commandesPipe avec GrepRécapitulatif - Pipeline de données