#1 Le 19/11/2021, à 19:20
- Jarodd
[Résolu] Renommer des fichiers avec des fractions dans leurs noms
Bonjour,
Au boulot on ne transmet parfois des fichiers de log qui sont nommés avec des fractions : 1/x, 2/x, etc..
Ne me demandez pas pourquoi, personne ne sait, ça a toujours été comme ça et "ça marche donc on change pas"
Je voudrais les renommer, en enlevant la fraction, et ne conserver que le numérateur (le premier chiffre). Je ne veux pas remplacer 1⁄23 (la fraction) par 1/23 vu qu'il ne faut pas de barre oblique dans un nom de fichier. Je voudrais avoir 1.txt, 2.txt, etc..
Dans un nautilus ou nemo, la fraction semble apparaître comme un seul caractère, comme dans l'image ci-dessus.
Dans le terminal, on dirait que 1/23 prend la place de 4 caractères.
J'ai essayé de les renommer en graphique (avec pyRenamer), et en commande :
$ echo "1⁄23.txt" | sed '⁄23//'
sed: -e expression n°1, caractère 1: commande inconnue: « »
(j'ai fait un copié collé de "1⁄23" car je ne sais pas comment on tape une fraction )
Mais rien ne fonctionne et ça me saoûle. Je n'ai rien trouvé sur le web.
Est-ce que vous auriez une idée, un script, quelque chose pour avoir des fichiers correctement nommés ?
Merci pour votre aide.
Edit : résolu avec la commande du message #5
Dernière modification par Jarodd (Le 19/11/2021, à 21:07)
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#2 Le 19/11/2021, à 20:01
- Watael
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
salut,
les noms doivent être "encodés" autrement, car il n'est pas possible sur un système Linux d'avoir des barres obliques dans les noms de fichiers, puisque c'est l'indicateur de hiérarchie : /racine/dossier/fichier.
essaye un printf '%s\n' *.txt | od -c, dans le répertoire où sont ces fichiers, pour voir ce qu'est réellement le nom de ces fichiers.
Dernière modification par Watael (Le 19/11/2021, à 20:02)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 19/11/2021, à 20:22
- MicP
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Bonjour
Ils ont peut-être utilisé les caractères unicode correspondants aux chiffres en indice et exposant
pour obtenir les noms de fichiers ¹⧸₂₃.txt à ²³⧸₂₃.txt
mais en fait, c'est totalement impossible à vérifier à partir d'une image.
C'est pour ça qu'il est très souvent beaucoup plus efficace de transmettre des informations au format texte,
comme par exemple le retour de la commande ls qui permettrait d'afficher le nom de chacun de ces fichiers au format texte
et de pouvoir ensuite les copier/coller dans un de tes messages sur ce forum.
J'aurais pu te donner un exemple de ligne de commande pour faire ça,
mais il m'est impossible de savoir quel est le chemin du répertoire qui est listé dans ton image.
=======
Pour la barre oblique, j'ai utilisé le caractère unicode nommé BIG SOLIDUS (U+29F8)
Pour les chiffres :
Exposant :
U+2070 ⁰
U+00B9 ¹
U+00B2 ²
U+00B3 ³
U+2074 ⁴
U+2075 ⁵
U+2076 ⁶
U+2077 ⁷
U+2078 ⁸
U+2079 ⁹
Indice :
U+2080 ₀
U+2081 ₁
U+2082 ₂
U+2083 ₃
U+2084 ₄
U+2085 ₅
U+2086 ₆
U+2087 ₇
U+2088 ₈
U+2089 ₉
Dernière modification par MicP (Le 19/11/2021, à 20:41)
Hors ligne
#4 Le 19/11/2021, à 20:45
- Jarodd
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
@watael voici le retour de la commande :
$ printf '%s\n' *.txt | od -c
0000000 1 0 342 201 204 2 3 . t x t \n 1 1 342 201
0000020 204 2 3 . t x t \n 1 2 342 201 204 2 3 .
0000040 t x t \n 1 342 201 204 2 3 . t x t \n 1
0000060 3 342 201 204 2 3 . t x t \n 1 4 342 201 204
0000100 2 3 . t x t \n 1 5 342 201 204 2 3 . t
0000120 x t \n 1 6 342 201 204 2 3 . t x t \n 1
0000140 7 342 201 204 2 3 . t x t \n 1 8 342 201 204
0000160 2 3 . t x t \n 1 9 342 201 204 2 3 . t
0000200 x t \n 2 0 342 201 204 2 3 . t x t \n 2
0000220 1 342 201 204 2 3 . t x t \n 2 2 342 201 204
0000240 2 3 . t x t \n 2 342 201 204 2 3 . t x
0000260 t \n 2 3 342 201 204 2 3 . t x t \n 3 342
0000300 201 204 2 3 . t x t \n 4 342 201 204 2 3 .
0000320 t x t \n 5 342 201 204 2 3 . t x t \n 6
0000340 342 201 204 2 3 . t x t \n 7 342 201 204 2 3
0000360 . t x t \n 8 342 201 204 2 3 . t x t \n
0000400 9 342 201 204 2 3 . t x t \n
0000413
Je suppose que 1 0 342 201 204 2 3 . t x t
est équivalent à 1 / 23 . t x t
@MicP voici le retour du ls :
-rw-rw-r-- 1 jarodd jarodd 444 nov. 19 18:58 10⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 433 nov. 19 18:59 11⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 444 nov. 19 18:59 12⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 755 nov. 19 18:59 1⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 427 nov. 19 18:59 13⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 418 nov. 19 18:59 14⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 413 nov. 19 18:59 15⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 413 nov. 19 18:59 16⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 412 nov. 19 19:00 17⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 428 nov. 19 18:59 18⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 417 nov. 19 19:00 19⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 449 nov. 19 19:00 20⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 415 nov. 19 19:00 21⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 418 nov. 19 19:00 22⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 424 nov. 19 18:57 2⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 425 nov. 19 19:00 23⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 472 nov. 19 18:58 3⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 425 nov. 19 18:57 4⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 455 nov. 19 18:58 5⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 427 nov. 19 18:58 6⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 430 nov. 19 18:57 7⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 421 nov. 19 18:57 8⁄23.txt
-rw-rw-r-- 1 jarodd jarodd 416 nov. 19 18:57 9⁄23.txt
J'espère que ça vous suffira (je tâtonne). Merci pour votre aide.
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#5 Le 19/11/2021, à 21:03
- MicP
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Ils n'ont pas utilisé les indices et exposants,
mais, pour la barre de division, ils ont utilisé le caractère nommé FRACTION SLASH (U+2044)
=======
Cette ligne de commande affichera les lignes de commandes qui seraient exécutées
si la commande echo n'avait pas précédé la commande mv
for f in *.txt; do echo mv "$f" "${f%⁄*}.txt"; done
Donc, si ce qu'elle ferait te convient,
il te suffira de la lancer en enlevant la commande echo
comme ci-dessous :
for f in *.txt; do mv "$f" "${f%⁄*}.txt"; done
=======
Testé chez moi, ça donne :
michel@debbull:~/test$ touch {1..23}⁄23.txt; ls
10⁄23.txt 1⁄23.txt 15⁄23.txt 18⁄23.txt 21⁄23.txt 23⁄23.txt 5⁄23.txt 8⁄23.txt
11⁄23.txt 13⁄23.txt 16⁄23.txt 19⁄23.txt 22⁄23.txt 3⁄23.txt 6⁄23.txt 9⁄23.txt
12⁄23.txt 14⁄23.txt 17⁄23.txt 20⁄23.txt 2⁄23.txt 4⁄23.txt 7⁄23.txt
michel@debbull:~/test$ for f in *.txt; do echo mv "$f" "${f%⁄*}.txt"; done
mv 10⁄23.txt 10.txt
mv 11⁄23.txt 11.txt
mv 12⁄23.txt 12.txt
mv 1⁄23.txt 1.txt
mv 13⁄23.txt 13.txt
mv 14⁄23.txt 14.txt
mv 15⁄23.txt 15.txt
mv 16⁄23.txt 16.txt
mv 17⁄23.txt 17.txt
mv 18⁄23.txt 18.txt
mv 19⁄23.txt 19.txt
mv 20⁄23.txt 20.txt
mv 21⁄23.txt 21.txt
mv 22⁄23.txt 22.txt
mv 2⁄23.txt 2.txt
mv 23⁄23.txt 23.txt
mv 3⁄23.txt 3.txt
mv 4⁄23.txt 4.txt
mv 5⁄23.txt 5.txt
mv 6⁄23.txt 6.txt
mv 7⁄23.txt 7.txt
mv 8⁄23.txt 8.txt
mv 9⁄23.txt 9.txt
michel@debbull:~/test$ for f in *.txt; do mv "$f" "${f%⁄*}.txt"; done
michel@debbull:~/test$ ls
10.txt 12.txt 14.txt 16.txt 18.txt 1.txt 21.txt 23.txt 3.txt 5.txt 7.txt 9.txt
11.txt 13.txt 15.txt 17.txt 19.txt 20.txt 22.txt 2.txt 4.txt 6.txt 8.txt
michel@debbull:~/test$
Dernière modification par MicP (Le 19/11/2021, à 21:08)
Hors ligne
#6 Le 19/11/2021, à 21:05
- nany
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Bonjour,
for f in *.txt; do mv -v "$f" "${f//⁄[[:digit:]]*}"; done
À noter que ⁄≠/.
Dernière modification par nany (Le 19/11/2021, à 21:25)
Hors ligne
#7 Le 19/11/2021, à 21:07
- Jarodd
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Oui c'est parfait @MicP, ils sont bien renommés ! Merci bcp.
@nany j'essaye ta commande dès que je reçois de nouveaux fichiers
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#8 Le 19/11/2021, à 21:14
- MicP
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Oui, celle de nany est plus sélective (bien plus mieux meilleure que la mienne, je trouve )
car elle supprime le caractère ⁄ et la suite de chiffres qui le suivent (=> jusqu'au point séparateur d'extension exclus)
Tandis que la mienne ne fait que supprimer le caractère ⁄ et tout ce qui le suit (le point et le nom d'extension compris),
et ajoute ensuite le point et l'extension supprimées.
Dernière modification par MicP (Le 19/11/2021, à 21:23)
Hors ligne
#9 Le 19/11/2021, à 21:24
- Jarodd
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Ok je verrai à l'usage celle que j'appliquerai (je me ferai un petit script).
Un petit bonus serait d'ajouter un zéro pour les épisodes 1 à 9 (pour tous les avoir sur deux chiffres : 01, 02,... 09). C'est possible ?
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#10 Le 19/11/2021, à 21:24
- nany
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Non, j’ai été trop vite. Je viens de tester et ça supprime l’extension.
Seule la solution de MicP fonctionne.
Hors ligne
#11 Le 19/11/2021, à 21:31
- MicP
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
@nany
Bonsoir
Arghh ! Dommage, je n'avais pas pris le temps de tester ta proposition moi non plus…
Dernière modification par MicP (Le 19/11/2021, à 21:33)
Hors ligne
#12 Le 19/11/2021, à 21:37
- nany
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Un petit bonus serait d'ajouter un zéro pour les épisodes 1 à 9 (pour tous les avoir sur deux chiffres : 01, 02,... 09). C'est possible ?
for f in *.txt; do mv -v "$f" $(printf "%02d.txt" "${f%⁄*}"); done
Dernière modification par nany (Le 19/11/2021, à 21:37)
Hors ligne
#13 Le 19/11/2021, à 22:01
- geole
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Bonjour,
Au boulot on ne transmet parfois des fichiers de log qui sont nommés avec des fractions : 1/x, 2/x, etc..Je voudrais les renommer, en enlevant la fraction, et ne conserver que le numérateur (le premier chiffre). Je ne veux pas remplacer 1⁄23 (la fraction) par 1/23 vu qu'il ne faut pas de barre oblique dans un nom de fichier. Je voudrais avoir 1.txt, 2.txt, etc..
Bonsoir.
D'abord bravo pour la solution du degré d'iinclinaison de la barre oblique.
Je trouve dommages que tu te moques de la quantité totale de fichiers. A mon avis c'est une technique pour savoir que le dernier fichier est bien présent et qu'ils le sont tous. Il devrait aussi être possible de renommer en
1 sur un total de 23
ou
00001_de_23
ou ?
Il ne devrait pas être très difficile de mettre le premier nombre avec des zéros à gauche.
Ajout. Je viens de voir que tu as déjà la réponse.
Dernière modification par geole (Le 19/11/2021, à 22:21)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#14 Le 19/11/2021, à 22:16
- Watael
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
le / "magique" n'apparaît pas sur le forum dans mon navigateur (min) :
mv "$f" "${f%$'\u2044'*}.txt"
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#15 Le 20/11/2021, à 22:03
- Jarodd
Re : [Résolu] Renommer des fichiers avec des fractions dans leurs noms
Merci pour l'ajout des zéros, c'est top !
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne