Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

smile

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