#1 Le 23/08/2008, à 12:10
- fnx
script bash: concatenation d'actions
Bonjour,
Je cherche à rediriger la sortie d'une commande comme paramètres pour une deuxieme commande un peu compliquée.
Pour prendre un exemple:
1) je sors une liste de fichier avec find . | grep txt
2) je voudrais ajouter tous les fichiers trouvés à une archive: tar -rf monarchive.tar
Pour le faire en une ligne, je cherche une commande du type:
find . | grep new | exec tar -rf monarchive.tar
(ou plus astucieux...)
Merci de votre aide
Hors ligne
#2 Le 23/08/2008, à 12:40
- Tha Tawa'S
Re : script bash: concatenation d'actions
je ne suis pas sur de moi, mais je decomposerais...
find . | grep txt >> mon_fichier
ca redirigera le resultat de la commande vers mon_fichier.
tar -rf mon_fichier.tar
tu le compresses
et eventuellement, un petit script comme ca ;
#! /bin/sh
find . | grep txt >> mon_fichier
sleep 2
tar -rf mon_fichier.tar
Mais demande conseil aux devs ...
Si tu tapes ta tete contre une cruche et que ca sonne creux... ce n est peut-etre pas la cruche qui est creuse....
Hors ligne
#3 Le 23/08/2008, à 17:46
- fnx
Re : script bash: concatenation d'actions
Merci pour cette réponse.
J'ai bien pensé à cette solution, mais je souhaiterais faire une commande en une ligne pour éviter d'écrire des fichiers temporaires, d'autant que je n'ai pas toujours de droit d'écriture, et que j'ai aussi scripts plus complexes que cet exemple.
Dernière modification par fnx (Le 23/08/2008, à 17:47)
Hors ligne
#4 Le 23/08/2008, à 20:17
- rniamo
Re : script bash: concatenation d'actions
pourquoi ne pas passer par une variable ?
maVar="liste des fichiers"
et après tu compresse la liste.
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#5 Le 25/08/2008, à 15:36
- sensini
Re : script bash: concatenation d'actions
c'est là qu'intervient xargs :
find . -name "*txt" -print0 | xargs -0t tar -zcvf foofile.tar.gz
si c'est bien ce que tu veux, on enlève le -t de xargs :
find . -name "*txt" -print0 | xargs -0 tar -zcvf foofile.tar.gz
Dernière modification par sensini (Le 25/08/2008, à 15:39)
http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)
Hors ligne