logo

Tuyauterie sous Unix ou Linux

Un canal est une forme de redirection (transfert de sortie standard vers une autre destination) utilisée sous Linux et d'autres systèmes d'exploitation de type Unix pour envoyer la sortie d'une commande/programme/processus vers une autre commande/programme/processus pour un traitement ultérieur. . Les systèmes Unix/Linux permettent de connecter la sortie standard d'une commande au stdin d'une autre commande. Vous pouvez le faire en utilisant le caractère pipe '|' .

Le tube est utilisé pour combiner deux commandes ou plus, et en cela, la sortie d'une commande agit comme entrée pour une autre commande, et la sortie de cette commande peut servir d'entrée pour la commande suivante, et ainsi de suite. Il peut également être visualisé comme une connexion temporaire entre deux ou plusieurs commandes/programmes/processus. Les programmes de ligne de commande qui effectuent le traitement ultérieur sont appelés filtres.



Cette connexion directe entre commandes/programmes/processus leur permet de fonctionner simultanément et permet aux données d'être transférées entre eux en continu plutôt que d'avoir à les transmettre via des fichiers texte temporaires ou via l'écran d'affichage.
Les tuyaux sont unidirectionnels, c'est-à-dire les données circulent de gauche à droite dans le pipeline.

Syntaxe:

command_1 | command_2 | command_3 | .... | command_N>

Exemple de tuyauterie sous Unix ou Linux

1. Répertoriez tous les fichiers et répertoires et donnez-les en entrée à la commande `grep` à l'aide de la tuyauterie sous Linux

ls | grep file.txt>

ls | grep fichier.txt



comment ouvrir un fichier en java

Dans cette première étape, nous utilisons `ls` pour lister tous les fichiers et répertoires du répertoire actuel, puis transmettons sa sortie à la commande `grep` et recherchons le nom de fichier `file.txt`. La sortie de la commande ls est envoyée à l'entrée de la commande grep et le résultat est une liste de fichiers correspondant au terme de recherche.

la modulation d'amplitude

2. Répertoriez tous les fichiers et répertoires et donnez-les en entrée aux commandes « plus » utilisant le piping sous Linux.

$ ls -l | more>

$ ls -l | plus

La commande more prend la sortie de $ ls -l comme entrée. L'effet net de cette commande est que la sortie de ls -l est affichée un écran à la fois. Le tube agit comme un conteneur qui prend la sortie de ls -l et la donne à more en entrée. Cette commande n'utilise pas de disque pour connecter la sortie standard de ls -l à l'entrée standard de more car pipe est implémenté dans la mémoire principale.
En termes d'opérateurs de redirection d'E/S, la commande ci-dessus est équivalente à la séquence de commandes suivante.



$ ls -l ->temp more -> temp (ou plus temp) [contenu de temp] rm temp>
temp.

ls -l -> temp

La sortie des deux commandes ci-dessus est la même.

3. Trier une liste de fichiers par taille à l'aide de la tuyauterie sous Linux

ls -l sort -k 5>
ls -l trier -k 5

applet applet

Cette commande répertorie tous les fichiers du répertoire actuel, puis utilise la commande « sort » pour trier la liste selon la cinquième colonne, qui représente la taille du fichier.

4. Utilisez les commandes sort et uniq pour trier un fichier et imprimer des valeurs uniques à l'aide de la tuyauterie sous Linux

$ sort record.txt | uniq>

Cela triera le fichier donné et imprimera uniquement les valeurs uniques.

trier record.txt | unique

5. Utilisez head et tail pour imprimer des lignes dans une plage particulière d'un fichier.

$ cat sample2.txt | head -7 | tail -5>

Cette commande sélectionne les 7 premières lignes de la commande (head -7) et celles-ci seront entrées dans la commande (tail -5) qui imprimera finalement les 5 dernières lignes de ces 7 lignes.

chat sample2.txt | tête -7 | queue -5

6. Utilisez ls et find pour répertorier et imprimer toutes les lignes correspondant à un modèle particulier dans les fichiers correspondants.

$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;>

Cette commande sélectionne les fichiers avec .SMS extension dans le répertoire donné et recherche des modèles comme le programme dans l'exemple ci-dessus et imprime ceux qui contiennent un programme.

ls-l | find ./ -type f -name *.txt -exec grep program {} ;

7. Utilisez les commandes cat, grep, tee et wc pour lire l'entrée particulière de l'utilisateur et la stocker dans un fichier et imprimer le nombre de lignes.

$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>

Cette commande sélectionne Rajat Dua et stockez-les dans file2.txt et imprimez le nombre total de lignes correspondant Rajat Dua

résultat du chat.txt | grep Rajat Dua | tee fichier2.txt | toilettes -l

si sinon boucle en java

8.Comment puis-je rediriger la sortie d’une commande redirigée vers un fichier sous Unix ou Linux ?

Nous pouvons utiliser l'opérateur de redirection `>` pour rediriger la sortie d'une commande redirigée.

Par exemple:

chargement javascript

Si j'ai un nom de fichier « file.txt » et que je souhaite le rediriger vers un nom de fichier « geeks.txt ».

 ls | grep 'file'>geeks.txt>
geeks.txt

ls | grep 'fichier'> geeks.txt

Conclusion

Le piping est une fonctionnalité puissante des systèmes d'exploitation Unix et Linux qui nous aide à relier différentes commandes entre elles pour effectuer des tâches complexes rapidement et efficacement. Dans cet article, nous avons appris comment rediriger la sortie d’une commande vers l’entrée d’une autre commande. Dans l’ensemble, nous pouvons dire qu’en utilisant la tuyauterie, nous pouvons gagner du temps, améliorer la productivité et réduire l’utilisation de l’espace disque.