Communication tubes
Résolu
lilboyz
-
lilboyz -
lilboyz -
Bonjour à toutes / tous,
J'aimerai connaître votre avis sur ce petit problème :
J'aimerai faire une recherche de fichiers réguliers et connaître le nombre de fichiers trouvés, en utilisant la communication par tube, et les commandes find, cat et wc.
En ne prenant pas en compte les erreurs éventuellement générées par find et en stockant le résultat final dans res.txt
J'ai essayé quelques solutions, mais avec les redirections tel quel cela le shell me renvoyait une erreur de redirection ambigüe, alors j'ai ajouté des parenthèses :
( find /usr -name "*" -type f >& /dev/null ) | cat | (wc -l > res.txt)
mais j'ai 0 dans res.txt.
Par contre, si je retire les parenthèses et que je n'effectue pas la redirection sortie erreur pour find, j'ai 20500 qui sort et qui est la réponse.
Quelqu'un voit d'où provient l'ambiguïté? D'avance merci.
J'aimerai connaître votre avis sur ce petit problème :
J'aimerai faire une recherche de fichiers réguliers et connaître le nombre de fichiers trouvés, en utilisant la communication par tube, et les commandes find, cat et wc.
En ne prenant pas en compte les erreurs éventuellement générées par find et en stockant le résultat final dans res.txt
J'ai essayé quelques solutions, mais avec les redirections tel quel cela le shell me renvoyait une erreur de redirection ambigüe, alors j'ai ajouté des parenthèses :
( find /usr -name "*" -type f >& /dev/null ) | cat | (wc -l > res.txt)
mais j'ai 0 dans res.txt.
Par contre, si je retire les parenthèses et que je n'effectue pas la redirection sortie erreur pour find, j'ai 20500 qui sort et qui est la réponse.
Quelqu'un voit d'où provient l'ambiguïté? D'avance merci.
A voir également:
- Communication tubes
- Near-field communication - Guide
- Une erreur de communication est détectée dans le module de sécurité - Forum TNT / Satellite / Réception
- La communication via ssl a echoue ps vita ✓ - Forum Google Chrome
- Branchement coffret de communication fibre optique ✓ - Forum câblage
- Msa@communication. microsoft.com ✓ - Forum Réseaux sociaux
3 réponses
Ca vient clairement de la redirection de la sortie erreur standard, puique quand je tape :
find /usr -name "*" -type f -print | cat | (wc -l > res.txt)
J'ai le bon nombre qui est écrit dans res.txt
Une idée? =s
find /usr -name "*" -type f -print | cat | (wc -l > res.txt)
J'ai le bon nombre qui est écrit dans res.txt
Une idée? =s
Salut,
Ben c'est normal, ">& /dev/null" redirige à la fois la sortie standard et la sortie d'erreur vers le néant, donc forcément rien n'est affiché ;-\
Ben c'est normal, ">& /dev/null" redirige à la fois la sortie standard et la sortie d'erreur vers le néant, donc forcément rien n'est affiché ;-\
find /usr -name "*" -type f 2>/dev/null | wc -l >res.txt
Il m'affiche un message d'erreur quand j'écris :
(find /usr -name "*" -type f -exec cat {} \; 2> /dev/null ) | (wc -l > res.txt)
"Les chemins doivent précéder l'expression : 2
Utilisation : find ...."
J'utilise le cat dans find à présent grâce au paramètre -exec.
(find /usr -name "*" -type f -exec cat {} \; 2> /dev/null ) | (wc -l > res.txt)
"Les chemins doivent précéder l'expression : 2
Utilisation : find ...."
J'utilise le cat dans find à présent grâce au paramètre -exec.