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 17/07/2012, à 14:38

Léo13

Script pour renommer des fichiers de 1 à n fichiers [Résolu].

Bonjour,
J'ai 175 fichier de type "xxxxxxx.nc" dans un repertoire que je voudrais renommer de 1 à 175. Je maîtrise trés mal les commandes linux, pouvez-vous m'aider?
Merci d'avance.

Dernière modification par Léo13 (Le 17/07/2012, à 16:21)

Hors ligne

#2 Le 17/07/2012, à 14:45

ljere

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

au lieu de vouloir réinventer la roue il me semble que ce logiciel fait très bien ce que tu veux
http://doc.ubuntu-fr.org/pyrenamer


ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon

Hors ligne

#3 Le 17/07/2012, à 14:53

mydjey

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

Ça pourrait être intéressant d'avoir une réponse en ligne de commande aussi. smile
cf le topic dans lequel Léo13 a posté.

Hors ligne

#4 Le 17/07/2012, à 14:57

Léo13

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

Oui, c'est une ligne de commande que je voudrais.

Hors ligne

#5 Le 17/07/2012, à 15:13

Hizoka

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

x=1
while read
do
  mv "${REPLY}" "${REPLY/%nc/${x}}"
  ((x++))
done < <(ls -1 *.nc)

Mais si tu fais une recherche sur le forum, tu en trouveras plein de topic comme toi....

Il y a rename qui permettrait de tout faire en une commande mais je ne gere pas assez bien...
http://forum.ubuntu-fr.org/viewtopic.ph … 1#p9912621


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 17/07/2012, à 16:03

nesthib

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

un simple :

for file in *.nc ; do mv "${file}" $((++i)).nc ; done

devrait suffire smile

ajoute un echo devant la commande mv pour vérifier que cela fait bien ce que tu veux
NB. i ne doit pas être définit, ou doit être initialisé à 0


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#7 Le 17/07/2012, à 16:20

Léo13

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

Merci à Hizoka et nesthib, ca marche sans problème et ca me fait gagner un temps fou.

Hors ligne

#8 Le 17/07/2012, à 17:25

Hizoka

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

c'est vrai que je me suis fait chié pour rien la smile

Bien vu nestib !
J'etais partit sur un for mais j'ai changé d'avis tongue


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#9 Le 18/07/2012, à 10:14

Postmortem

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

Salut,

Hizoka a écrit :

c'est vrai que je me suis fait chié pour rien la smile

Bien vu nestib !
J'etais partit sur un for mais j'ai changé d'avis tongue

Puis la boucle sur ls, c'est pas top top tongue


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#10 Le 18/07/2012, à 15:53

nesthib

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

Ne me fais pas dire ce que je n'ai pas dit Postmortem tongue J'ai dit que cette construction peut être problématique quand tu fais un script qui doit être diffusé et suis toujours d'accord avec ça. De plus, là, tu remarqueras que je lui ai suggéré de vérifier que tout se passe bien avec un echo. Si j'étais sûr de son shell je ne lui aurai pas conseillé wink
en fait il faudrait demander à chaque fois le retour de $SHELL et vérifier que ça ne soit pas sh ni bash <v4

sinon en pratique j'ai abandonné bash pour zsh et c'est bien plus simple :

zmv '(*).nc' '$((++i)).nc'

na ! tongue

edit : même pas besoin des parenthèses autour du « * » en fait

Dernière modification par nesthib (Le 18/07/2012, à 16:00)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#11 Le 18/07/2012, à 16:04

Postmortem

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

Je précisais juste à Hizoka que boucler sur ls, c'est pas top. Je ne voulais pas te faire dire quelque chose ! wink
Si tu n'avais pas posté ta solution, j'aurais proposé la même chose que toi, ou très proche.
La construction for i in * fonctionne très bien même avec des noms de fichiers "bizarre" en sh (du moins sur les versions de sh que j'ai testées !) ainsi qu'en bash 3 (et avant je pense)

Edit : un jour, j'essaierai zsh, ça a l'air pas mal du tout... Mais bon, au taf, et c'est pas le premier client chez qui je suis que c'est comme ça, c'est ksh ! Rien que quand on fait du bash ils aiment pas !

Re-edit : Remarque, tu parlais peut-être de $((++i)) quand tu disais qu'il fallait voir s'il n'était pas en sh

Dernière modification par Postmortem (Le 18/07/2012, à 16:10)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#12 Le 18/07/2012, à 16:57

Hizoka

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

Je suis d'accord, ma soluce était pas top tongue

pas en grande forme sur ce coup ci smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#13 Le 19/07/2012, à 15:43

credenhill

Re : Script pour renommer des fichiers de 1 à n fichiers [Résolu].

hello
autre méthode

printf 'mv %s $((++i)).nc\n' *.nc | bash

Hors ligne