Se connecter avec
S'enregistrer | Connectez-vous
Votre question
Résolu

shell et extension de fichiers

Dernière réponse : dans Le monde de Linux
Partagez
29 Août 2012 19:07:59

Salut,

je suis actuellement en train de faire un petit script shell sur un NAS synology et je suis face à un probleme auquel je ne trouve pas de solution. D'où ma venue vers vous.

J'ai des fichiers (prenons le fichier "toto") avec une extension en ".a.b" (toto.a.b) et j'aimerai arriver à virer le ".a" (et donc arriver à : "toto.b").

J'a bien trouver une solution avec la fonction rename, seulement, cette fonction n'a pas l'air d'etre implementée totalement sur les NAS Synology, je me retrouve donc coincé. Serait-il possible qu'une personne plus competente de moi se penche sur mon problème afin de voir s'il est possible d'y trouver une solution ?

Une piste pourrait être la fonction sed ou tr (meme si apparemment sed modifie des chaines de caracteres dans un fichier et tr modifie une lettre et pas une sequence de caracteres)

Cordialement,

Autres pages sur : shell extension fichiers

Meilleure solution

29 Août 2012 22:39:52

Bon, en fait j'utilisais mal la fonction "rename" la syntaxe correcte etant :

rename .tar.gz .gz *.tar.gz

rename ancienne_extesion extension_voulue tous_les_fichiers_sur_lesquels_cela_sapplique

Bonne soirée
partage
a b 5 Linux
30 Août 2012 16:42:20

Salut,

Tu gagnes les points de la meilleure réponse pour avoir eu l'amabilité de revenir nous donner ta solution.
;) 

--------------

Euh, il y a une coquille dans ce que tu proposes :
rename .tar.gz .tgz *.tar.gz
N'est-ce pas ?

--------------

Cette commande ne fait pas partie des commandes UNIX.
Elle existe pour Linux dans le paquet standard ulis-linux.

Mais dans tout les cas, o peut simuler cette commande avec ce tout petit script :
  1. for REF in $( ls *.tar.gz > /dev/null )
  2. do
  3. mv $REF $( echo $REF | sed /\.tar\.gz$/.tgz/ )
  4. done


Et voilà la commande sed utilisée, pour la plus grande joie d'Ildrad !
:D 
m
0
l