OVH Cloud OVH Cloud

prefixer stderr et stdout

3 réponses
Avatar
nicolas vigier
Bonjour,

En utilisant les redirections suivantes, j'obtient un fichier contenant
la sortie standard et la sortie d'erreur de ma commande :
$ commande > fichier 2>&1
Le probl=E8me est qu'il n'est alors plus possible dans ce fichier de
distinguer ce qui a =E9t=E9 =E9crit sur la sortie standard, et sur la
sortie d'erreur. Je cherche donc un programme me permettant de prefixer
chaque ligne sur la sortie standard par exemple par STDOUT, et chaque
ligne sur la sortie d'erreur par STDERR.

Quelqu'un connait il un programme permettant de faire cela ?

Merci

Nicolas

3 réponses

Avatar
Stephane Chazelas
On 9 Jan 2006 02:23:32 -0800, nicolas vigier wrote:
Bonjour,

En utilisant les redirections suivantes, j'obtient un fichier contenant
la sortie standard et la sortie d'erreur de ma commande :
$ commande > fichier 2>&1
Le problème est qu'il n'est alors plus possible dans ce fichier de
distinguer ce qui a été écrit sur la sortie standard, et sur la
sortie d'erreur. Je cherche donc un programme me permettant de prefixer
chaque ligne sur la sortie standard par exemple par STDOUT, et chaque
ligne sur la sortie d'erreur par STDERR.
[...]


{
{ commande | sed 's/^/STDOUT/' >&3 3>&-
} 2>&1 | sed 's/^/STDERR/'
} > fichier 3>&1

Attention toutefois que l'ordre des messages n'est pas garanti.

--
Stephane

Avatar
Paul Gaborit
À (at) 9 Jan 2006 02:23:32 -0800,
"nicolas vigier" écrivait (wrote):
En utilisant les redirections suivantes, j'obtient un fichier contenant
la sortie standard et la sortie d'erreur de ma commande :
$ commande > fichier 2>&1
Le problème est qu'il n'est alors plus possible dans ce fichier de
distinguer ce qui a été écrit sur la sortie standard, et sur la
sortie d'erreur. Je cherche donc un programme me permettant de prefixer
chaque ligne sur la sortie standard par exemple par STDOUT, et chaque
ligne sur la sortie d'erreur par STDERR.


Il suffit de rediriger chacun des flux vers son propre fichier :

% commande > fichier-stdout 2> fichier-stderr


--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

Avatar
nicolas vigier
Stephane Chazelas wrote:


{
{ commande | sed 's/^/STDOUT/' >&3 3>&-
} 2>&1 | sed 's/^/STDERR/'
} > fichier 3>&1

Attention toutefois que l'ordre des messages n'est pas garanti.


C'est exactement ce que je chercheais. Merci.

Nicolas