Forum Programmation.shell rahhh...le noob

Posté par  (site web personnel) .
Étiquettes : aucune
0
2
juil.
2005
Bonjour a tous, j'ai rennomé des fichiers .fit qui se nomment maintenant :
lenomdufichier1.fit.fit et j'ane ai 700 : lenomdufichier700.fit.fit
j'aimerai juste pouvoir enlever le .fit... c comment que je fait. J'ai regardé du coté de sed.. gnark... comprends rien au man.

j'ai fait ca :
#!/usr/bin/bash
for file in $(ls *.fit)
do
mv $file $(echo soso$file | sed s/".fit.fit"/"");
done

mais ca marche po des masses... des idées ?
  • # Quelquechose dans ce style ??

    Posté par  . Évalué à 2.

    for file in `ls *.fit.fit`
    do
    mv $file `echo $file | sed -e s/\.fit\.fit//`
    done
    • [^] # Re: Quelquechose dans ce style ??

      Posté par  . Évalué à 5.

      T'as oublié d'y mettre du cat et du awk aussi :)

      for file in *.fit.fit
      do
      mv "${file}" "${file%.fit}"
      done

      Et puis sinon, y'a un petit utilitaire nommé "ren" qui roulaize pour ce genre de trucs :
      ren "*.fit.fit" "#1.fit"
  • # Avec basename

    Posté par  . Évalué à 3.

    Basename est bien adapté pour ça :

    # basename lenomdufichier1.fit.fit .fit
    lenomdufichier1.fit

    for fich in *.fit.fit
    do
    mv $fich `basename $fich .fit`
    done
  • # Avec rename

    Posté par  . Évalué à 6.

    $ rename 's/\.fit$//' *.fit.fit

    rename est fourni avec perl.
  • # Substitution de variables en bash

    Posté par  . Évalué à 2.

    for file in $( ls *fit ) ; do mv $file ${file/.fit/} ; done
  • # merci :)

    Posté par  (site web personnel) . Évalué à 1.

    C'est bon. basename m'a sauvé :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.