Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/12/2018, à 11:22

cosmoff

que fais exactement le pipe

Bonjour à tous,

voila je connais la finalité de la commande :

ls dir/ | grep docs

mais pas ce qu'elle fait en détail via le pipe.

Est ce que je place tous les fichiers du répertoire dir dans un fichier temporaire, puis ensuite je regarde avec la commande grep si dans ma list temporaire il y a un fichier portant le nom docs,
ou alors ca marche comme une boucle et pour chaque  nom de fichier placé dans le fichier temporaire je regarde (via la commande grep) s'il porte le nom doc, puis je repete cette action autant
de fois qu'il y a de fichier?

Merci d'avance pour votre aide

Dernière modification par cosmoff (Le 03/12/2018, à 11:23)

Hors ligne

#2 Le 03/12/2018, à 11:46

grandtoubab

Re : que fais exactement le pipe

Salut
pipe envoie le résultat de la première commande en entrée de la deuxième
https://openclassrooms.com/fr/courses/4 … id/r-40443
tu peux faire directement
grep docs dir/*

je cherche les mp4 du dossier Vidéos

grep mp4 Vidéos/*

Dernière modification par grandtoubab (Le 03/12/2018, à 11:55)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#3 Le 03/12/2018, à 11:58

Watael

Re : que fais exactement le pipe

ah, non, ça ne fait pas la même chose.
cosmoff va chercher parmi les noms de fichiers ceux qui comportent le motif 'docs';
grandtoubab va chercher dans le contenu des fichiers le motif indiqué.

dans un cas, grep traite la liste des fichiers comme s'il s'agissait du contenu d'un fichier, dans l'autre il traite le contenu des fichiers qui lui sont passés en arguments.

je ne sais pas si je suis bien clair.

Dernière modification par Watael (Le 03/12/2018, à 12:02)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 03/12/2018, à 12:01

pingouinux

Re : que fais exactement le pipe

Bonjour,

grandtoubab #2 a écrit :

grep docs dir/*

Cette commande va rechercher la chaîne docs dans le contenu des fichiers dir/*.

Hors ligne

#5 Le 03/12/2018, à 12:07

grandtoubab

Re : que fais exactement le pipe

pingouinux a écrit :

Bonjour,

grandtoubab #2 a écrit :

grep docs dir/*

Cette commande va rechercher la chaîne docs dans le contenu des fichiers dir/*.

dans l'ensemble des fichiers du dossier dir


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#6 Le 03/12/2018, à 13:37

Watael

Re : que fais exactement le pipe

dans le contenu de chaque fichier du répertoire.

je vais essayer de m'expliquer mieux :
la commande de cosmoff retournera une liste de fichiers dont le nom comporte le motif recherché
ta commande retournera les lignes qui comportent ce motif dans les fichiers

edit:
encore mieux :

il y a une boîte avec des sacs portant une étiquette sur laquelle est inscrit un mot.
ces sacs contiennent des colliers de billes sur lesquelles sont inscrit autant de mots (un mot par bille).

la commande de cosmoff regarde uniquement les étiquettes sur les sacs.

la commande de grandtoubab regarde dans les sacs pour retrouver les colliers dont une bille correspond au motif cherché.

Dernière modification par Watael (Le 03/12/2018, à 14:11)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 03/12/2018, à 14:21

grandtoubab

Re : que fais exactement le pipe

Watael a écrit :

ta commande retournera les lignes qui comportent ce motif dans les fichiers


.

Non, pas seulement, ça retourne aussi la liste des fichiers d'extensions mp4
Exemple

~$ grep mp4 Vidéos/*
grep: Vidéos/arte: est un dossier
Fichier binaire Vidéos/Ashlee Haze-Lane Bryant.mp4 correspondant
Fichier binaire Vidéos/Avengers1.mp4 correspondant
Fichier binaire Vidéos/Avengers2.mp4 correspondant
Fichier binaire Vidéos/balcon2.mp4 correspondant
Fichier binaire Vidéos/balcon3.mp4 correspondant
Fichier binaire Vidéos/balcon4.mp4 correspondant
Fichier binaire Vidéos/balcon6.mp4 correspondant
Fichier binaire Vidéos/balcon7.mp4 correspondant
Fichier binaire Vidéos/balcon8.mp4 correspondant
Fichier binaire Vidéos/balcon.mp4 correspondant

etc

Dernière modification par grandtoubab (Le 03/12/2018, à 14:21)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#8 Le 03/12/2018, à 14:34

Watael

Re : que fais exactement le pipe

grep traite les lignes des fichiers passés en argument ou passées sur son entrée standard,
mais étant donné qu'il ne peut pas lire les données des fichiers binaires, il affiche ce message :

$ grep -r txt src/
[...]
Fichier binaire src/bash-4.4/doc/bashref.dvi correspondant
[...]

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 03/12/2018, à 15:13

pingouinux

Re : que fais exactement le pipe

grep ne trouve une correspondance dans un fichier binaire que si une suite d'octets correspond au motif.

$ hd aa
00000000  00 01 02 03 04 05 06 07                           |........|
00000008

$ hd bb
00000000  00 01 02 03 04 05 6d 70  34 06 07                 |......mp4..|
0000000b

$ file aa bb
aa: raw G3 data, byte-padded
bb: raw G3 data, byte-padded

$ grep mp4 *
Binary file bb matches

Édité :
Ou mieux

$ hd aa.mp4
00000000  00 01 02 03 04 05 06 07                           |........|
00000008

$ hd bb.mp4
00000000  00 01 02 03 04 05 6d 70  34 06 07                 |......mp4..|
0000000b

$ grep mp4 *
Binary file bb.mp4 matches

Dernière modification par pingouinux (Le 03/12/2018, à 15:17)

Hors ligne