Shell : rediriger un pipe vers deux commandes
Résolu/Fermé
NegroTruc
-
21 déc. 2011 à 16:19
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 22 déc. 2011 à 12:31
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 22 déc. 2011 à 12:31
A voir également:
- Shell : rediriger un pipe vers deux commandes
- Classic shell windows 11 - Télécharger - Personnalisation
- Shell startup windows 10 - Guide
- Efi shell version 2.31 - Forum Programmation
- Ssh secure shell download - Télécharger - Divers Web & Internet
- Shell infrastructure host c'est quoi ✓ - Forum Windows 10
6 réponses
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
Modifié par dubcek le 21/12/2011 à 16:37
Modifié par dubcek le 21/12/2011 à 16:37
hello
avec awk
avec awk
awk '/test/ { print $10 > "fich1.tmp" ; print $2 > "fich2.tmp"}' texte.log
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
Modifié par dubcek le 22/12/2011 à 10:32
Modifié par dubcek le 22/12/2011 à 10:32
il ne peut y avoir que le dernier avec > >(commande)
essayer
en résumé
essayer
grep "Login" texte.log | grep -v super | tee >(cut -d" " -f12- | cut -d"[" -f1 > fich1.test) >(grep 10.20.30.40 | wc -l > fich2.tmp) > >(grep 50.60.70.80 | wc -l > fich3.tmp)
en résumé
grep ... ¦ tee >(commande) >(commande) >(commande) ... > >(commande)
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
22 déc. 2011 à 11:25
22 déc. 2011 à 11:25
Cette façon de faire vient d'où ? je ne l'ai pas trouver dans la page man de tee.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
22 déc. 2011 à 11:32
22 déc. 2011 à 11:32
Salut,
info tee ;-))
info tee ;-))
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
Modifié par dubcek le 22/12/2011 à 12:12
Modifié par dubcek le 22/12/2011 à 12:12
tee ne fait que copier la sortie standard dans des fichiers
pour cette notation bash >(commande), voir Substitution de Processus
pour cette notation bash >(commande), voir Substitution de Processus
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
22 déc. 2011 à 12:15
22 déc. 2011 à 12:15
Dans ce cas là, la commande tee est superflue alors.
Je ne comprends pas le double > pour le dernier argument.
Je ne comprends pas le double > pour le dernier argument.
Ma commande d'origine n'est pas pas aussi simple malheureusement...
Mais bon, je n'ai "plus" qu'à apprendre comment fonctionne awk ! ^^"
Merci de ton aide.
Mais bon, je n'ai "plus" qu'à apprendre comment fonctionne awk ! ^^"
Merci de ton aide.
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
21 déc. 2011 à 17:08
21 déc. 2011 à 17:08
montre nous la commande
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
22 déc. 2011 à 08:03
22 déc. 2011 à 08:03
avec 1 grep et plusieurs cut :
grep test texte.log | tee >(cut -d " " -f 10 >fich1.tmp) > >(cut -d " " -f 2 >fich2.tmp)
En utilisant les redirections tee de ton exemple, j'obtiendrais ça :
Ça à l'air de répondre à mon besoin. Je vais tester avec un time, pour vérifier si c'est vraiment plus efficace, mais il n'y a pas de raison ! :)
Merci !
EDIT : Arf, non, trois commandes, ça n'a pas l'air possible. Je cherche.
grep "Login" texte.log | grep -v super | tee >(cut -d" " -f12- | cut -d"[" -f1 > fich1.test) > >(grep 10.20.30.40 | wc -l > fich2.tmp) > >(grep 50.60.70.80 | wc -l > fich3.tmp)
Ça à l'air de répondre à mon besoin. Je vais tester avec un time, pour vérifier si c'est vraiment plus efficace, mais il n'y a pas de raison ! :)
Merci !
EDIT : Arf, non, trois commandes, ça n'a pas l'air possible. Je cherche.