Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
un find avec une redirection et un {}
Envoyé par: noel blanc

Bonjour,
Je n'arrive pas à écrire une ligne de commande find avec une redirection utilisant le paramètre {}.
La ligne qui ne marche pas :
cd ....toto
find . -exec tr ' ' ' ' <{} > {}-log
La commande tr fonctionne bien. Elle remplace le successions d'espaces par un seul et unique espace.
Le problème est que les redirections tranportent le nom de fichier "{}" et non le vrai nom du fichier.
Si vous pouviez m'aider, j'en serais ravi.
Merci.

Poste le Thursday 8 November 2007 18:00:03
Répondre     Citer    
Re: un find avec une redirection et un {}

Il suffit de faire un script qui contient la commande
tr ' ' ' ' < $1 > $1.log
(ou ce qui te convient) et d'appeler ce script depuis le find

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Thursday 8 November 2007 18:03:07
Répondre     Citer    
Re: un find avec une redirection et un {}
Envoyé par: noel blanc

Merci, je n'y avais pas pensé.
Je voulais le faire en une seule ligne.
Mais après tout...

Poste le Thursday 8 November 2007 18:08:10
Répondre     Citer    
Re: un find avec une redirection et un {}
Envoyé par: oudoubah

Citation
noel blanc
Bonjour,
Je n'arrive pas à écrire une ligne de commande
find avec une redirection utilisant le paramètre
{}.
La ligne qui ne marche pas :
cd ....toto
find . -exec tr ' ' ' ' <{} > {}-log
La commande tr fonctionne bien. Elle remplace le
successions d'espaces par un seul et unique
espace.
Le problème est que les redirections tranportent
le nom de fichier "{}" et non le vrai nom du
fichier.
Si vous pouviez m'aider, j'en serais ravi.
Merci.

Les redirections sont interprétées pour find, et non pour tr.
Essaie comme ça (mais je ne suis pas sûr):
find . -exec "tr ' ' ' ' <{} > {}-log"

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Thursday 8 November 2007 19:15:57
Répondre     Citer    
Re: un find avec une redirection et un {}
Envoyé par: noel blanc

Désolé oudoubah, ca ne marche pas.
find . "*.log" -exec tr -s ' ' ' ' <{} > {}-txt \; me disait :
"-bash: {}: aucun fichier ou répertoire de ce type"
find . "*.log" -exec "tr -s ' ' ' ' <{} > {}-txt" \; me dit :
"find: tr -s ' ' ' <./vmstat-1.log > ./vmstat-1.log-txt : aucun fichier ou répertoire de ce type".
C'est beaucoup mieux car au moins le {} arrive dans "tr". Mais il semble que find considére toute la chaine entre guillemet comme le programme a lancé.

Poste le Friday 9 November 2007 08:40:25
Répondre     Citer    
Re: un find avec une redirection et un {}

Peut-être aussi (pas essayé)
find . -exec sh -c "tr ' ' ' ' <{} > {}-log" \;

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 9 November 2007 12:46:54
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
un find avec une redirection et un {}
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons