Bonjour,

On Wed, Feb 10, 2016 at 10:47:31AM +0100, Samuel Chenal wrote:
> Le but était de trouver une commande pour virer ce dernier caractère. La
> commande :
> 
> find . -type d -iname "* "
> 
> ... m'a donné plusieurs centaines de dossiers dans ce cas.

:-))

> J'ai construit la commande suivante :
> 
> find . -type d -iname "* " -exec rename -v 's/\ $//g' {} \;
> 
> ... qui semble bien fonctionner. Il faut cependant la lancer plusieurs fois.
> 
> En effet, j'ai l'impression que le find s'exécute pour toute
> l'arborescence et ensuite, il lance le -exec. Et comme certains dossiers
> sont modifiés par le rename, le -exec ne peut plus accéder aux
> sous-dossiers fautifs pour les renommer.

C'est juste!

Le truc c'est que find te présente l'arborescence de la manière suivante:

  /
  /aaa/
  /aaa/bbb
  /aaa/ccc
  /aaa/ddd/
  /aaa/ddd/eee

Et donc, par ordre, su tu renomme ddd avant de renommer eee, la
commande ne trouvera plus eee, puisqu'il n'est plus sous ddd que
tu as déjà renommé.

En fait, je pense que ``tac'' devrait le faire

genre:


  find ... -print | tac | tr \\n \\0 | xargs -0 rename 's/ $//' 

A paufiner, tester!

Bonne chance!

( Sinon: flèche vers le haut + return, tant que ça dure ;-) 

-- 
 Félix Hauri  -  <fe...@f-hauri.ch>  -  http://www.f-hauri.ch
_______________________________________________
gull mailing list
gull@forum.linux-gull.ch
http://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à