OVH Cloud OVH Cloud

Redirection de sortie partielle

33 réponses
Avatar
Francois Lafont
Bonjour à tous,

Je suis sous Debian Squeeze. Je butte sur un truc assez basique mais qui
m'intrigue et que je ne comprends pas. Voici ce que me donne la commande
ci-dessous :

-----------------------------------------------------------
# aptitude update -v
Atteint http://ftp2.fr.debian.org squeeze Release.gpg
Ign http://ftp2.fr.debian.org/debian/ squeeze/contrib Translation-en
Ign http://ftp2.fr.debian.org/debian/ squeeze/contrib Translation-fr
Atteint http://www.debian-multimedia.org squeeze Release.gpg

[Couic]

Atteint http://ftp2.fr.debian.org squeeze-updates/main amd64 Packages

État actuel : 0 paquet cassé [+0], 0 mise à jour restante [+0], 276
nouveaux paquets [+0].
#
-----------------------------------------------------------

Très bien, j'ai en sortie la dernière ligne que je voudrais isoler avec
un grep. Je tente alors ça :

-----------------------------------------------------------
# aptitude update -v | grep 'État actuel'
#
-----------------------------------------------------------

Aucune sortie. Je tente une redirection vers un fichier :

-----------------------------------------------------------
# aptitude update -v > out
-----------------------------------------------------------

Et dans le fichier out je retrouve toute la sortie que j'avais dans la
première commande, sauf la fameuse derrière ligne. Ok, là je me dis, sûr
de moi, c'est bon je sais ce qu'il se passe : la dernière ligne provient
du flux de sortie des erreurs standard (stderr) et non du flux de sortie
standard (stdout), alors je tente ça :

-----------------------------------------------------------
# aptitude update -v 2>&1 1> out
-----------------------------------------------------------

Et bien dans le fichier out, toujours pas cette fameuse dernière ligne.
Mais elle provient d'où alors cette dernière ligne si elle ne provient
ni de stdout et ni de stderr ? Comment faire pour la récupérer elle et
elle seule J'aimerais bien comprendre.

Merci d'avance pour votre aide.

--
François Lafont

3 réponses

1 2 3 4
Avatar
Francois Lafont
Le 18/01/2012 19:47, Luc Habert a écrit :

J'ai bien fait le test mais le résultat obtenu dans les fichiers ploum1
et ploum2 est vraiment trop incompréhensible pour moi.



Cherche les write.



Ok. Mais vraiment tout ça ne me parle pas tellement.


Dans le cas « avec redirection de stdout », j'ai la ligne :

« write(1, "Lecture des listes de paquets..."..., 33) = 33 »

Et en ensuite le fichier que me génère strace est quasiment terminé.


Dans le cas « sans redirection de stdout », j'ai la ligne :

« write(1, "rr[ 0%] Lecture des listes de p"..., 38) = 38 »

Mais il me reste encore les 2/3 du fichier à parcourir (environ) ce qui
veut dire qu'il se passe encore pas mal de choses ensuite contrairement
au cas précédent. Mais je ne suis pas vraiment capable d'en dire plus. :-)

--
François Lafont
Avatar
Luc.Habert.00__arjf
Francois Lafont :

ce qui veut dire qu'il se passe encore pas mal de choses ensuite
contrairement au cas précédent.



Donc aptitude se comporte bien differament lorsque sa sortie n'est pas un
terminal.
Avatar
Francois Lafont
Le 18/01/2012 21:29, Luc Habert a écrit :

ce qui veut dire qu'il se passe encore pas mal de choses ensuite
contrairement au cas précédent.



Donc aptitude se comporte bien differament lorsque sa sortie n'est pas un
terminal.



Oui.
Tu avais vu juste. Comme tu disais, aptitude est un programme « qui veut
être trop intelligent. » :-)

Merci encore.
À+

--
François Lafont
1 2 3 4