Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1948 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Renommage en masse de fichiers, suppression d'une partie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Renommage en masse de fichiers, suppression d'une partie

n°1407556
lieskey
Les clefs ne sont que mensonge
Posté le 07-09-2017 à 13:59:11  profilanswer
 

Hello all  :wahoo:  
 
Je suis loin d’être un cador en Linux, d’où ma question.
 
Ce que je recherche à faire est, pour certain, un jeu d’enfant j’en suis persuadé.  
J’ai trouvé pas mal d’éléments de réponse sur le net, mais je n’arrive pas lier toutes les informations pour arriver au résultat escompté…
 
Sujet
Je suis dans un répertoire où sont positionnés un grand nombre de fichiers ayant tous la même norme de nommage :
 [NomDuFichier] - [InformationSupplementaire].[Extension]
 
Mon objectif est de renommé tous les fichiers pour ceux-ci n’est plus cette « - [InformationSupplementaire] », mais soient nommés ainsi [NomDuFichier].[Extension]
 
La partie [NomDuFichier] est différente pour tous des fichiers.
La partie [ - InformationSupplementaire] est différente pour tous des fichiers.
La partie [Extension] est identique pour tous des fichiers.
 
Ex
Passer de :
 Mémoire de fin d’études - Mon sujet d’étude.pdf
À :
 Mémoire de fin d’étude.pdf
 
 :pt1cable: VOUS AVEZ DEUX HEURES !  :pt1cable:  
 
Naaaan, en vrai merci par avance de votre aide et de vos recherches  :love:  

mood
Publicité
Posté le 07-09-2017 à 13:59:11  profilanswer
 

n°1407557
jean-blagu​in
Posté le 07-09-2017 à 14:29:34  profilanswer
 

Hello  :hello:  
 
Alors y a sûrement plus opti avec je sais pas quels outils mais un truc comme ça devrait répondre à ton besoins je pense :
for i in *.pdf; do new=$(echo $i | cut -d "-" -f1 | cut -d " " -f1); mv "${i}" "$new.pdf"; done
 
Tester sur un setup comme ça :
[pierre@MI tmp]$ ls -lh
total 0
-rw-r--r-- 1 pierre pierre    0  7 sept. 14:27 'jaime - le chocolat.pdf'
-rw-r--r-- 1 pierre pierre    0  7 sept. 14:28 'truc - test.pdf'
 
for i in *.pdf; do new=$(echo $i | cut -d "-" -f1 | cut -d " " -f1); mv "${i}" "$new.pdf"; done
 
 
[pierre@MI tmp]$ ls -lh
total 0
-rw-r--r-- 1 pierre pierre    0  7 sept. 14:27 jaime.pdf
-rw-r--r-- 1 pierre pierre    0  7 sept. 14:28 truc.pdf
 
Essaie peut-être avec un cp avant, parce que je sais pas si mon truc prend en compte les ' que pourraient avoir les noms de fichier.


---------------
Vieux motard que jamais :)
n°1407558
Lolight
Posté le 07-09-2017 à 14:46:25  profilanswer
 

[\HSON]Ah Itescia, une grande famille[\HSOFF]
J'ai plus ou moins la solution, juste le MV qui passe pas, et je sais pas why.
https://pastebin.com/NZz4D9ey
JB, si tu as une idée de pourquoi ça passe pas, ça serais op :3


Message édité par Lolight le 07-09-2017 à 14:46:55

---------------
--- Mon topik d'Ach/Ven ---
n°1407559
lieskey
Les clefs ne sont que mensonge
Posté le 07-09-2017 à 15:04:01  profilanswer
 

Hello J-B :)
 
Ta ligne de script est franchement pas mal, merci beaucoup !!!
 
Néanmoins une petite chose, ton script ne me laisse que le premier mot composant le nom du fichier.
 
En supprimant ton deuxième cut ( | cut -d " " -f1), ce la règle le problème.
 
PS : un espace subsiste toujours a la fin du nom du fichier.
ex : Mémoire de fin d'études .pdf
 
Encore merciiiiii  :love:

Message cité 1 fois
Message édité par lieskey le 07-09-2017 à 15:07:46
n°1407560
jean-blagu​in
Posté le 07-09-2017 à 15:09:12  profilanswer
 

lieskey a écrit :

Hello J-B :)

 

Ta ligne de script est franchement pas mal, merci beaucoup !!!

 

Néanmoins, une petite chose ton script ne me laisse que le premier composant le nom de mon fichier.

 

En supprimant ton deuxième cut ( | cut -d " " -f1), ce la règle ce problème.

 

PS : un espace subsiste toujours a la fin du nom du fichier
ex : Mémoire de fin d'études .pdf

 

Encore merciiiiii

 

En relançant le script un peu modifié tu devrais supprimer l'espace :

 

for i in *.pdf; do new=$(echo $i | cut -d "." -f1); mv "${i}" "$new.pdf"; done

 

Ça devrait le faire (je fais de tête donc soit prudent).


---------------
Vieux motard que jamais :)
n°1407561
lieskey
Les clefs ne sont que mensonge
Posté le 07-09-2017 à 15:19:33  profilanswer
 

De tête, c'est tooop déja  :pt1cable:  
 
Mais hélas non ça ne fonctionne pas, par contre tu ne dois vraiment pas être loin.  
 
>> mv: ‘Mémoire de fin d'études .pdf’ and ‘Mémoire de fin d'études .pdf’ are the same file
 
  :ouch:


Message édité par lieskey le 07-09-2017 à 15:20:11
n°1407563
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 07-09-2017 à 15:37:14  profilanswer
 

on ne fait pas les devoirs de ses petits camarades, merci


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1407564
Lolight
Posté le 07-09-2017 à 15:44:35  profilanswer
 

black_lord a écrit :

on ne fait pas les devoirs de ses petits camarades, merci


 
Ce ne sont pas ces devoirs de source sure :)
 
J'ai modifié et solve le premier soucis de mv mais un autre est apparus.
https://pastebin.com/2tFbpxN5


---------------
--- Mon topik d'Ach/Ven ---
n°1407565
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 07-09-2017 à 15:59:50  profilanswer
 

Lolight a écrit :


 
Ce ne sont pas ces devoirs de source sure :)
 


 
ça y ressemble drolement quand meme :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1407566
lieskey
Les clefs ne sont que mensonge
Posté le 07-09-2017 à 16:02:40  profilanswer
 

black_lord a écrit :


 
ça y ressemble drolement quand meme :o


 
Et non  :p  

mood
Publicité
Posté le 07-09-2017 à 16:02:40  profilanswer
 

n°1407574
watael
Posté le 08-09-2017 à 01:09:43  profilanswer
 

Si,si.
Ce sujet a été tellement traité sur tous les forums relatifs au scripting en shell qu'il est très étonnant que tu n'aies pas trouvé une solution qui te conviennes, éventuellement, en te creusant un tout petit peu la tête pour l'adapter.

n°1407586
lieskey
Les clefs ne sont que mensonge
Posté le 08-09-2017 à 12:08:58  profilanswer
 

watael a écrit :

Si,si.
Ce sujet a été tellement traité sur tous les forums relatifs au scripting en shell qu'il est très étonnant que tu n'aies pas trouvé une solution qui te conviennes, éventuellement, en te creusant un tout petit peu la tête pour l'adapter.

 

D’où ma précision dans mon post : "J’ai trouvé pas mal d’éléments de réponse sur le net, mais je n’arrive pas lier toutes les informations pour arriver au résultat escompté… ".
Du coup, si je demande de l'aide, c'est que je n'y arrive pas.


Message édité par lieskey le 08-09-2017 à 12:09:42
n°1407587
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 08-09-2017 à 12:29:55  profilanswer
 

lieskey a écrit :


 
Et non  :p  


 
Alors explique ce que c'est, si ce ne sont pas "des devoirs"


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1407588
watael
Posté le 08-09-2017 à 12:36:57  profilanswer
 

Citation :

D’où ma précision dans mon post : "J’ai trouvé pas mal d’éléments de réponse sur le net, mais je n’arrive pas lier toutes les informations pour arriver au résultat escompté… ".
Du coup, si je demande de l'aide, c'est que je n'y arrive pas.

alors, il faut montrer ce que tu as déjà tenté, afin qu'on voit ton raisonnement, et qu'on le corrige.

Code :
  1. for f in ./*; do ext="${f##*.}" rad="${f%% *}"; echo mv "$f" "$rad.$ext"; done

n°1407684
Lolight
Posté le 11-09-2017 à 10:59:35  profilanswer
 

Lolight a écrit :


 
Ce ne sont pas ces devoirs de source sure :)
 
J'ai modifié et solve le premier soucis de mv mais un autre est apparus.
https://pastebin.com/2tFbpxN5


 

black_lord a écrit :


 
Alors explique ce que c'est, si ce ne sont pas "des devoirs"


 
Pour info, comme je l'ai dis plus haut, on sort de la même école et on viens tout juste de terminer nos dernières épreuves.
D'ou le fait je soit sur que ça soit des "devois". Notre école n'es pas du tout technique d'ou le fait qu'il soit pas ouf.
Il est venus ici vous poser quelques questions après mes recomandations.
 
Voilà pour la petite histoire, maintenant si vous voulez pas aider au pire go boycott le topic.
Après c'est vrai qu'utiliser l'exemple du mémoire n'es pas très malin. De se que je sais c'est pour faire du tagage de masse sur linux, il passera reconfirmer.
 
J'ai donné un script qui est plutôt pas mal celon moi, j'ai juste une simple erreur au niveau du MV.
Mais j'ai l'impression que personne n'a daigné l'essayer.
 
Avec tout le respect que je vous doit, je souhaitais juste mettre au clair certain points.
Après il s'expliquera lui même je suis pas sa mère.


Message édité par Lolight le 11-09-2017 à 18:12:43

---------------
--- Mon topik d'Ach/Ven ---
n°1407710
watael
Posté le 11-09-2017 à 15:22:26  profilanswer
 

pourquoi irais-je sur pastebin voir un code qui devrait être posté sur notre forum dans le fil de la discussion ?
dans quelques années, la page pastebin ne sera peut-être plus accessible, alors que les lignes inscrites dans ce fil le seront toujours; pourvu qu'on puisse y accéder.
 
ensuite, squatter un discussion, même sur un sujet identique, ne respecte pas la netiquette : tes erreurs ne sont pas celles du posteur initial.
 
tu aurais dû ouvrir ton propre sujet (on n'aide pas quelqu'un on fournissant une solution non fonctionnelle), et après, quand on aurait réglé le(s) problème(s), tu aurais pu mettre un lien vers ta discussion résolue.

Message cité 1 fois
Message édité par watael le 11-09-2017 à 15:31:55
n°1407721
Lolight
Posté le 11-09-2017 à 17:39:47  profilanswer
 

watael a écrit :

pourquoi irais-je sur pastebin voir un code qui devrait être posté sur notre forum dans le fil de la discussion ?
dans quelques années, la page pastebin ne sera peut-être plus accessible, alors que les lignes inscrites dans ce fil le seront toujours; pourvu qu'on puisse y accéder.
 
ensuite, squatter un discussion, même sur un sujet identique, ne respecte pas la netiquette : tes erreurs ne sont pas celles du posteur initial.
 
tu aurais dû ouvrir ton propre sujet (on n'aide pas quelqu'un on fournissant une solution non fonctionnelle), et après, quand on aurait réglé le(s) problème(s), tu aurais pu mettre un lien vers ta discussion résolue.


 
Te sens pas visé.
Cette mentalité. HFR Nazi avec 240 posts ?  :o  
Et si non on s'en fou de que ma solution soit consultable vu qu'elle est pas fonctionnelle.
Au pire clique pas, osef, personne t'oblige.


Message édité par Lolight le 11-09-2017 à 18:11:44

---------------
--- Mon topik d'Ach/Ven ---
n°1407730
watael
Posté le 11-09-2017 à 18:54:26  profilanswer
 

Watael, c'est 232 messages ici.
 sinon, STFW !
 
il ne faut pas confondre la liberté et le chaos, l'ordre et l'oppression.

n°1407739
Modération
Posté le 11-09-2017 à 20:43:05  answer
 

watael, lolight > on respire un grand coup et on se calme.
 
 :hello:

n°1407743
watael
Posté le 11-09-2017 à 22:23:15  profilanswer
 

 [:vhalairy]
[:snorkydu29]


Message édité par watael le 12-09-2017 à 04:49:06

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Renommage en masse de fichiers, suppression d'une partie

 

Sujets relatifs
Fichiers corrompus .movpartage de fichiers reseau local microsoft / livecd HELP!
Partage de fichiers volumineuxAuthentification linux/windows + serveur de fichiers?
[CRYPTOLOCKER] - Script pour empêcher la modif des fichiers ciblés ?Backup rsync sans toucher aux fichiers identiques même si +récents
Installation Ubuntu (dual boot Win7) et partage de fichiersFichiers mts et tsMuxer
OMV Gestion des dossiers et fichiers sous minidlnaFichiers PHP "invisibles" (appel en SSH impossible)
Plus de sujets relatifs à : Renommage en masse de fichiers, suppression d'une partie



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR