Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pipe

8 réponses
Avatar
Thomas
bonjour :-)


est il possible de rediriger en entrée d'une autre commande les erreurs
d'une commande au lieu ou même en plus de sa sortie standard ?


je dois absolument exécuter une certaine commande une seule fois

est il possible de mettre sa sortie à la fois en entier dans un fichier
log, et en entrée de grep pour faire un test ?

--
j'agis contre l'assistanat, je travaille dans une SCOP !

8 réponses

Avatar
Paul Gaborit
À (at) Wed, 19 Sep 2007 17:55:32 +0200,
Thomas écrivait (wrote):
est il possible de rediriger en entrée d'une autre commande les erreurs
d'une commande au lieu ou même en plus de sa sortie standard ?


Oui... mais la méthode dépend du type de shell utilisé (en gros, si
c'est un shell type 'sh' ou type 'csh').

je dois absolument exécuter une certaine commande une seule fois

est il possible de mettre sa sortie à la fois en entier dans un fichier
log, et en entrée de grep pour faire un test ?


Regardez du côté de la commande 'tee'.

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

Avatar
Luc.Habert.00__arjf
Thomas :

est il possible de rediriger en entrée d'une autre commande les erreurs
d'une commande au lieu


ploum 2>&1 > /dev/null | plim

ou même en plus de sa sortie standard ?


ploum 2>&1 | plim

Avatar
Thomas
In article <fcrvqb$2vg1$,
(Luc Habert) wrote:

Thomas :

est il possible de rediriger en entrée d'une autre commande les erreurs
d'une commande au lieu


ploum 2>&1 > /dev/null | plim

ou même en plus de sa sortie standard ?


ploum 2>&1 | plim


merci :-)

--
j'agis contre l'assistanat, je travaille dans une SCOP !


Avatar
Thomas
In article ,
Paul Gaborit wrote:

À (at) Wed, 19 Sep 2007 17:55:32 +0200,
Thomas écrivait (wrote):
est il possible de rediriger en entrée d'une autre commande les erreurs
d'une commande au lieu ou même en plus de sa sortie standard ?


Oui... mais la méthode dépend du type de shell utilisé (en gros, si
c'est un shell type 'sh' ou type 'csh').


si ce que Luc a indiqué marche pour sh, c'est bon :-)


je dois absolument exécuter une certaine commande une seule fois

est il possible de mettre sa sortie à la fois en entier dans un fichier
log, et en entrée de grep pour faire un test ?


Regardez du côté de la commande 'tee'.


le pb, c'est que je log un script entier qui va contenir tout ça,
alors mettre un petit bout du log dans un fichier séparé ça va pas être
pratique :-/

est ce qu'il y aurais pas plutôt une option à grep qui permettre de
faire sortir tout ce qui est entré, et qu'il y ait que le code de sortie
qui donne l'indication ?
le contraire de -q en fait :-)
(j'ai pas trouvé en regardant rapidement man grep)

--
j'agis contre l'assistanat, je travaille dans une SCOP !


Avatar
mpg
Le (on) jeudi 20 septembre 2007 03:00, Thomas a écrit (wrote) :
le pb, c'est que je log un script entier qui va contenir tout ça,
alors mettre un petit bout du log dans un fichier séparé ça va pas être
pratique :-/

est ce qu'il y aurais pas plutôt une option à grep qui permettre de
faire sortir tout ce qui est entré, et qu'il y ait que le code de sortie
qui donne l'indication ?
le contraire de -q en fait :-)
(j'ai pas trouvé en regardant rapidement man grep)

Je suis pas sûr d'avoir compris ce que tu veux faire, mais on dirait que

c'est un truc comme ça :
<des trucs> | grep -optionkitu <motif> > log
de sorte que :
1. log contienne la même chose que si tu n'avair pas mis de grep dans la
chaîne,
2. tu puisses récupérer le code de sortie de grep pour faire un test
ensuite.

Si c'est ça, je me trompe peut-être, mais ne serai-t-il pas plus naturel de
faire quelque chose comme
<des trucs> > log
if grep -q motif log ...

Bon, désolé si je suis à côté de la plaque...

Manuel.

Avatar
Matthieu Moy
Thomas writes:

Regardez du côté de la commande 'tee'.


le pb, c'est que je log un script entier qui va contenir tout ça,
alors mettre un petit bout du log dans un fichier séparé ça va pas être
pratique :-/


Je comprends pas le problème.

commande | tee fichier.log | grep -q machin

Te met toute la sortie de « commande » dans fichier.log, et le grep te
dis si il a trouvé machin dans cette sortie.

--
Matthieu


Avatar
Thomas
In article ,
Matthieu Moy wrote:

Thomas writes:

Regardez du côté de la commande 'tee'.


le pb, c'est que je log un script entier qui va contenir tout ça,
alors mettre un petit bout du log dans un fichier séparé ça va pas être
pratique :-/


Je comprends pas le problème.

commande | tee fichier.log | grep -q machin

Te met toute la sortie de « commande » dans fichier.log, et le grep te
dis si il a trouvé machin dans cette sortie.


un fichier "script2" va contenir

commande1
commande2 | tee log2 | grep -q machin
commande3


et un fichier "script1" va contenir

script2 &> log1


donc normalement, tout devrait être dans log1,
mais là, une petite partie de log1 va se retrouver dans log2 à la place

--
j'agis contre l'assistanat, je travaille dans une SCOP !



Avatar
Thomas
In article <fct7am$er1$, mpg
wrote:

Le (on) jeudi 20 septembre 2007 03:00, Thomas a écrit (wrote) :
le pb, c'est que je log un script entier qui va contenir tout ça,
alors mettre un petit bout du log dans un fichier séparé ça va pas être
pratique :-/

est ce qu'il y aurais pas plutôt une option à grep qui permettre de
faire sortir tout ce qui est entré, et qu'il y ait que le code de sortie
qui donne l'indication ?
le contraire de -q en fait :-)
(j'ai pas trouvé en regardant rapidement man grep)

Je suis pas sûr d'avoir compris ce que tu veux faire, mais on dirait que

c'est un truc comme ça :
<des trucs> | grep -optionkitu <motif> > log
de sorte que :
1. log contienne la même chose que si tu n'avair pas mis de grep dans la
chaîne,
2. tu puisses récupérer le code de sortie de grep pour faire un test
ensuite.


exactement

je croyais avoir été clair
voir mon autre réponse pour encore plus de précision


Si c'est ça, je me trompe peut-être, mais ne serai-t-il pas plus naturel de
faire quelque chose comme
<des trucs> > log
if grep -q motif log ...


ça me satisfait pas totalement, mais comme la sortie devrait être de
seulement une ligne en toutes circonstances, je devrais pouvoir utiliser
tail sur le log global

merci pour l'idée :-)


et merci à tous pour votre aide :-)

--
j'agis contre l'assistanat, je travaille dans une SCOP !