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 06/10/2019, à 12:24

g00ny

[Résolu] grep, boucle for, pipe et sortie dans un fichier

Bonjour,
J'aimerais enregistrer la sortie d'une commande dans un fichier, mais je n'y parviens pas.

Le fichier est créé mais reste vide et le résultat s'affiche dans la console.

for i in `find . -name "*.php"`; do php -l $i; done | grep 'PHP Parse error' > erreurs.txt 

Merci de votre aide

Dernière modification par g00ny (Le 06/10/2019, à 15:17)

Hors ligne

#2 Le 06/10/2019, à 12:48

pingouinux

Re : [Résolu] grep, boucle for, pipe et sortie dans un fichier

g00ny a écrit :

fichier est créé mais reste vide et le résultat s'affiche dans la console.

C'est parce que les messages d'erreur de la commande for sont écrits sur son fichier stderr, tandis que grep lit sur le fichier stdout du for.
Ceci est un palliatif (redirection du stderr du for sur stdout).

for i in `find . -name "*.php"`; do php -l $i; done 2>&1 | grep 'PHP Parse error' > erreurs.txt

Ajouté :
Tu pourrais faire aussi (bien que ce ne soit pas tout à fait équivalent)

while read i; do php -l $i; done < <(find -name "*.php") 2>erreurs.txt

Dernière modification par pingouinux (Le 06/10/2019, à 13:13)

Hors ligne

#3 Le 06/10/2019, à 15:16

g00ny

Re : [Résolu] grep, boucle for, pipe et sortie dans un fichier

Super, merci beaucoup.

Hors ligne