#1 Le 06/10/2019, à 11: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, à 14:17)
Hors ligne
#2 Le 06/10/2019, à 11:48
- pingouinux
Re : [Résolu] grep, boucle for, pipe et sortie dans un fichier
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, à 12:13)
Hors ligne
#3 Le 06/10/2019, à 14:16
- g00ny
Re : [Résolu] grep, boucle for, pipe et sortie dans un fichier
Super, merci beaucoup.
Hors ligne