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 11/01/2020, à 06:37

Avotrafa

[Résolu] Renommer tous les fichiers "*.pdf"


Bonjour big_smile,
Je viens de récupérer tous mes fichiers venant d'un carte "micro SD corrompu", j'ai besoin de votre aide sur un script qui permet renommer tous les noms de fichier en ".pdf".
Exemple: [*] f10412928_Je_m_incline  --> Je-m_incline
             f10412992_Je_m_incline_Thomas_Blanc --> Je_m_incline_Thomas_Blanc
             f10413184_Je_m_offre_toi --> Je_m_offre_toi
            [/*]

Merci de votre retour smile

Dernière modification par Avotrafa (Le 11/01/2020, à 10:15)


J'aime apprendre et partager ce que je sais
Avant de  poster, chercher par toi même et au forum ton problème
Desktop: Ubuntu Focal 20.04 (Bionic LTS) et Xubuntu 18.04.2 (Bionic LTS) sur portable PC

Hors ligne

#2 Le 11/01/2020, à 09:28

Avotrafa

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Merci pseudofab pour ta réponse, mais ça ne résolve pas mon problème!!!
Car tous les fichiers que je veux renommer se commencent en f104....._...., je veux supprimer tous les préfixes!!!


J'aime apprendre et partager ce que je sais
Avant de  poster, chercher par toi même et au forum ton problème
Desktop: Ubuntu Focal 20.04 (Bionic LTS) et Xubuntu 18.04.2 (Bionic LTS) sur portable PC

Hors ligne

#3 Le 11/01/2020, à 09:33

Compte supprimé

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Oui je me suis apperçu que cela ne rédondait pas vraiment à ta question, aussi je venais juste d'effacer mon message qui était

echo "f10413184_Je_m_offre_toi"|cut -d "_" -f 2-
Je_m_offre_toi

.

Dernière modification par Compte supprimé (Le 11/01/2020, à 10:06)

#4 Le 11/01/2020, à 09:46

alex2423

Re : [Résolu] Renommer tous les fichiers "*.pdf"

J'ai du mal à comprendre Avotrafa. Tu veux supprimer à chaque fois le préfixe f10412992_.
On s'appercoit que la fin du préfixe est marqué par le under score

pseudofab découpe découpe ta chaine de caractère avec un cut à chaque under score et sa commande ne renvoie que la 2ème itération et la suivante.
Qu'est ce qui n'est pas bon?

Hors ligne

#5 Le 11/01/2020, à 10:02

Compte supprimé

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Réponse complète:

for i in $(ls);do
mv $i $(echo $i|cut -d "_" -f 2-)
done

#6 Le 11/01/2020, à 10:09

Avotrafa

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Un capture d'écran sera plus claire:
http://pix.toile-libre.org/upload/origi … 736455.png

Je veux supprimer tous les préfixes, ce n'est pas un seul fichier mais tous tongue
Merci


Sur Toile Libre ou TDCT'Pix, choisir le lien « Insérer la miniature dans un forum : »

           1469894479.png

Dernière modification par cqfd93 (Le 11/01/2020, à 17:11)


J'aime apprendre et partager ce que je sais
Avant de  poster, chercher par toi même et au forum ton problème
Desktop: Ubuntu Focal 20.04 (Bionic LTS) et Xubuntu 18.04.2 (Bionic LTS) sur portable PC

Hors ligne

#7 Le 11/01/2020, à 10:11

Compte supprimé

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Répondu en #5 wink

#8 Le 11/01/2020, à 10:14

Avotrafa

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Merci beaucoup pseudofab big_smile:D:D
J'ai reussi, en qlq seconde seulement, encore merci


J'aime apprendre et partager ce que je sais
Avant de  poster, chercher par toi même et au forum ton problème
Desktop: Ubuntu Focal 20.04 (Bionic LTS) et Xubuntu 18.04.2 (Bionic LTS) sur portable PC

Hors ligne

#9 Le 11/01/2020, à 10:55

alex2423

Re : [Résolu] Renommer tous les fichiers "*.pdf"

ahh, oui, j'avais oublié que c'était le "tous les fichiers" qui manquait. roll
je n'avais pas tilté

Hors ligne

#10 Le 11/01/2020, à 11:39

pingouinux

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Bonjour,
Les commandes en #5 ne marcheront pas si les noms des fichiers contiennent des espaces.
Plus simple (cette commande ne fait rien, et est juste informative)

rename -n 's/f\d+_//' *

et enlever -n si c'est correct :

rename 's/f\d+_//' *

Hors ligne

#11 Le 11/01/2020, à 13:03

kamaris

Re : [Résolu] Renommer tous les fichiers "*.pdf"

@pseudofab : on ne peut pas faire confiance à la sortie de ls, on n'en maitrise pas le format.
Quelques exemples de problèmes qui peuvent se poser : https://unix.stackexchange.com/a/128987
Il faut utiliser les capacités de développement du shell, sans recourir à aucune commande :

for f in *; do
  mv "$f" "${f#*_}"
done

Hors ligne

#12 Le 11/01/2020, à 14:08

Compte supprimé

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Merci kamaris,
Je découvre comment faire des subtitutions de paramettre avec #, ##, %, %% ...
Je n'ai pas vraiment compris le contenu de ton lien (j'utilise un traducteur), mais bon, je comprends que le formatage de la sortie d'un ls peut poser souci. Aussi je prends note que ta manière de faire, est la bonne façon de procéder ... smile

#13 Le 11/01/2020, à 18:12

kamaris

Re : [Résolu] Renommer tous les fichiers "*.pdf"

J'ai du mal à trouver des liens en français qui regroupent divers tests démonstratifs, alors qu'en anglais il y en a pas mal (en voici un autre par exemple, dans un autre format que les stackexchange : https://mywiki.wooledge.org/ParsingLs).
Il y a quand même cette news linuxfr, où on trouve une petite discussion argumentée sur le sujet qui peut être éclairante : https://linuxfr.org/news/revue-des-tech … n-en-shell
Donc en gros, comme il est dit dans ce lien, c'est : « En bref la règle d'or est que la commande ls sert uniquement pour l'utilisation interactive du shell, dans le cas d'un script shell, on utilise soit le globbing soit la commande find en conjonction avec xargs. »
Mais en l'occurrence, la meilleure solution est probablement celle proposée par pingouinux en #10 smile

Hors ligne

#14 Le 12/01/2020, à 21:16

Compte supprimé

Re : [Résolu] Renommer tous les fichiers "*.pdf"

Merci pour tes liens, j'ai fait quelques essais et je comprends mieux ...
J'ai installé la commande rename, une occasion pour moi de voir/revoir un peu les expressions régulières  wink