#1 Le 18/08/2023, à 18:13
- Jarodd
[Résolu] Supprimer les emojis des noms de fichiers
Bonjour,
J'ai des fichiers téléchargés sur Youtube qui ont des emojis dans leurs noms. Exemples :
Ninjago ? Cristalise | Episode 1.mp4
Ninjago | L-amulette de foudre ⚡️Saison 13.webm
Ninjago | Une ombre sinistre ? S014.mp4
J'essaye de faire un script bash qui enlève tous les emojis :
emojis=()
emojis+=("✨")
emojis+=("?")
emojis+=("⛸")
# ... longue liste...
for emoji in "${emojis[@]}"
do
string_to_clear="Ninjago | Une ombre sinistre ? S014.mp4"
string_to_clear="$(echo "${string_to_clear}" | sed -r "s/$emoji//g")"
done
echo "$string_to_clear"
Mais la liste des emojis fait plus de 3500 lignes, et je ne les ai pas tous... De plus ceux qui sont encodés sur plusieurs caractères ne sont pas remplacés dans ce script.
Donc c'est lent et pas optimisé.
Quand je fais un ls, parfois je vois l'emoji, parfois je vois les caractères :
'Ninjago '$'\360\237\245\267'' Cristalise | Episode 1.mp4'
'Ninjago | L-amulette de foudre ⚡️Saison 13.webm'
'Ninjago '$'\360\237\245\267'' Le soulevement des dragons | Episode 2.webm'
Je voudrais savoir s'il y a un meilleur moyen de retirer ces emojis, sans devoir les lister tous (il en existe trop pour être exhaustif...) ? Est-ce faisable avec les caractères encodés ?
Peut-être que bash n'est pas la meilleure solution, je suis ouvert à d'autres langages si c'est plus efficace.
Merci pour vos conseils.
Edit : certains émojis sont affichés dans la saisie du message quand on les copie, mais ne sont pas visibles quand le message est posté
Edit 20/08 :
plusieurs solutions possibles, j'ai choisi d'utiliser rename (voir message #21 pour le message le plus complet) :
$ rename -n "s/[^[:alnum:] _.'-]//g; s/ /_/g; s/'/-/g; s/__/_/g;" Ninjago\ |\ L\'amulette\ de\ foudre\ ⚡️Saison\ 13.mp4
rename(Ninjago | L'amulette de foudre ⚡️Saison 13.mp4, Ninjago_L-amulette_de_foudre_Saison_13.mp4)
$
Dernière modification par Jarodd (Le 20/08/2023, à 20:54)
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#2 Le 18/08/2023, à 20:12
- pingouinux
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonsoir Jarodd,
Tu pourrais faire l'inverse : faire une liste des caractères autorisés, et supprimer ceux qui n'appartiennent pas à la liste.
Hors ligne
#3 Le 19/08/2023, à 06:20
- serged
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonsoir Jarodd,
Tu pourrais faire l'inverse : faire une liste des caractères autorisés, et supprimer ceux qui n'appartiennent pas à la liste.
Certes, mais cette liste peut être longue, avec les langues non latines (russe, arabe, chinois...).
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#4 Le 19/08/2023, à 07:05
- bruno
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonjour,
Je m’étonne de ne pas avoir vu de solution avec sed et rename (on renomme en remplaçant tout caractère non alphanumérique par un tiret ou autre)
Le plus simple est certainement d'utiliser detox :
sudo apt install detox
Exemple :
$ detox -v L-amulette\ de\ foudre\ ⚡Saison\ 13.webm
Scanning: L-amulette de foudre ⚡Saison 13.webm
L-amulette de foudre ⚡Saison 13.webm -> L-amulette_de_foudre_Saison_13.webm
Voir man detox pour les options.
#5 Le 19/08/2023, à 09:59
- Hizoka
Re : [Résolu] Supprimer les emojis des noms de fichiers
Salut, pour bruno
rename -n "s/[^[:alnum:] _.'-]//g" *
rename(L-amulette de foudre ⚡Saison 13.webm, L-amulette de foudre Saison 13.webm)
Si ça te va, tu enlève le -n.
Si tu veux conserver d'autres caractères, tu les ajoutes dans [^[:alnum:] _.'-]
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#6 Le 19/08/2023, à 13:15
- MicP
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonjour
Quel problème as-tu rencontré qui ferait que tu sois obligé de supprimer les caractères émoji de ces noms de fichiers ?
Peut-être que le problème est tout simplement que l'application avec laquelle tu veux utiliser ces fichiers n'a pas été paramétrée pour utiliser des noms de fichiers au format UTF-8,
ou alors, c'est le système de fichiers sur lequel tu voudrais enregistrer ces fichiers qui n'accepte pas des noms de fichiers au format UTF-8,
ou alors …
Dernière modification par MicP (Le 19/08/2023, à 13:26)
Hors ligne
#7 Le 19/08/2023, à 13:24
- Watael
Re : [Résolu] Supprimer les emojis des noms de fichiers
he! pas facile de trouver ⚡ sur le clavier !
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#8 Le 19/08/2023, à 13:32
- MicP
Re : [Résolu] Supprimer les emojis des noms de fichiers
U+26A1 -> ⚡
Faire Ctrl+Maj+u (U en minuscule)
un petit u souligné s'affiche pour vous inviter à entrer la valeur du point de code unicode du caractère
=> vous entrez alors 26A1
Dernière modification par MicP (Le 19/08/2023, à 13:44)
Hors ligne
#9 Le 19/08/2023, à 14:26
- bruno
Re : [Résolu] Supprimer les emojis des noms de fichiers
U+26A1 -> ⚡
Faire Ctrl+Maj+u (U en minuscule)
un petit u souligné s'affiche pour vous inviter à entrer la valeur du point de code unicode du caractère
=> vous entrez alors 26A1
En dehors du fait que cela ne fonctionne que sous GNOME avec Ibus, est-ce qu'il y a des gens qui font réellement cela ? Et les chiffres il faut les mettre en minuscule aussi ?
#10 Le 19/08/2023, à 14:32
- Watael
Re : [Résolu] Supprimer les emojis des noms de fichiers
Ctrl+Maj+u (U en minuscule)
mais comment peux-tu faire Maj+u et obtenir un U minuscule ?
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#11 Le 19/08/2023, à 17:37
- Jarodd
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonjour,
Merci pour vos retours, plein de solutions !
Bonsoir Jarodd,
Tu pourrais faire l'inverse : faire une liste des caractères autorisés, et supprimer ceux qui n'appartiennent pas à la liste.
Oui ça serait envisageable.
Certes, mais cette liste peut être longue, avec les langues non latines (russe, arabe, chinois...).
Ce n'est pas mon cas, mes noms de fichiers sont uniquement avec l'alphabet latin.
Mais plus la solution est générale, mieux c'est, donc on peut prendre en compte les autres alphabets !
Le plus simple est certainement d'utiliser detox
J'installe ça rapidement pour tester !
Edit : j'ai cette erreur :
$ detox -v L-amulette_de_foudre_⚡️Saison_13.mp4
Scanning: L-amulette_de_foudre_⚡️Saison_13.mp4
L-amulette_de_foudre_⚡️Saison_13.mp4: No such file or directory
(j'ai fait la touche Tabulation pour compléter le nom du fichier, donc il existe bien)
Quel problème as-tu rencontré qui ferait que tu sois obligé de supprimer les caractères émoji de ces noms de fichiers ?
Je ne suis pas "obligé" de supprimer ces caractères. Simplement je préfère ne pas avoir ces dessins en plein milieu du nom du fichier, qui n'apportent rien (à part une difficulté de lecture). Les égouts et les couleuvres...
U+26A1 -> ⚡
Faire Ctrl+Maj+u (U en minuscule)
un petit u souligné s'affiche pour vous inviter à entrer la valeur du point de code unicode du caractère
=> vous entrez alors 26A1
J'ai bien le "u" qui apparaît, mais quand je saisis le "A", cela affiche "ɪ1" et non l'emoji. Je n'ai peut-être pas bien compris la manipulation. Heureusement, je veux enlever ces caratères, et non les ajouter
Dernière modification par Jarodd (Le 19/08/2023, à 17:40)
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#12 Le 19/08/2023, à 18:01
- erresse
Re : [Résolu] Supprimer les emojis des noms de fichiers
J'ai bien le "u" qui apparaît, mais quand je saisis le "A", cela affiche "ɪ1" et non l'emoji.
C'est parce-que tu as été trop précis en voulant saisir le A majuscule... Si tu tapes 26a1 après le u souligné, ça donne bien l'éclair, par contre avec 26A1, ça fait ce que tu as montré "ɪ1".
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#13 Le 19/08/2023, à 18:51
- MicP
Re : [Résolu] Supprimer les emojis des noms de fichiers
Pour pouvoir taper la lettre a en majuscule il faut que le clavier soit positionné en majuscules (avec le verrouillage)
sinon, le simple fait de relâcher la touche Maj (shift) provoque le problème.
Mais de toutes façons, ça fonctionne tout aussi bien en entrant les lettres de la valeur hexadécimale en minuscules.
… je préfère ne pas avoir ces dessins en plein milieu du nom du fichier, qui n'apportent rien (à part une difficulté de lecture). …
C'est vrai que ça me gêne aussi, mais bon, si on peut s'en passer ce sera pas plus mal.
… En dehors du fait que cela ne fonctionne que sous GNOME avec Ibus, …
En fait, j'utilise cette méthode depuis XFCE sur debian 12 (bookworm)
mais c'est vrai qu'avec certaines méthodes d'entrée, ça ne marchera pas.
Dernière modification par MicP (Le 19/08/2023, à 19:01)
Hors ligne
#14 Le 19/08/2023, à 19:48
- Watael
Re : [Résolu] Supprimer les emojis des noms de fichiers
$ /usr/bin/printf '\u26a1\n'
⚡
$
Dernière modification par Watael (Le 19/08/2023, à 19:49)
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#15 Le 20/08/2023, à 12:29
- bruno
Re : [Résolu] Supprimer les emojis des noms de fichiers
Edit : j'ai cette erreur :
$ detox -v L-amulette_de_foudre_⚡️Saison_13.mp4 Scanning: L-amulette_de_foudre_⚡️Saison_13.mp4 L-amulette_de_foudre_⚡️Saison_13.mp4: No such file or directory
(j'ai fait la touche Tabulation pour compléter le nom du fichier, donc il existe bien)
Non, il n'existe pas. C'est bien ce qu'indique cette erreur (le fichier n'a pas ce nom dans ton premier message) ou alors il y a un problème entre le système de fichiers et l'encodage utilisé.
#16 Le 20/08/2023, à 13:16
- Hizoka
Re : [Résolu] Supprimer les emojis des noms de fichiers
et ma commande rename ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#17 Le 20/08/2023, à 16:01
- Jarodd
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonjour,
Avec rename, les emojis sont bien supprimés :
$ rename -n "s/[^[:alnum:] _.'-]//g" *
rename(L-amulette de foudre ⚡Saison 13.mp4, L-amulette de foudre Saison 13.mp4)
Par contre si j'enlève l'option -n, je n'ai pas de résultat :
$ rename "s/[^[:alnum:] _.'-]//g" *
$
Et le fichier n'est pas renommé.
J'ai aussi essayé en mettant directement le nom du fichier à la place de l'étoile :
$ rename "s/[^[:alnum:] _.'-]//g" L-amulette\ de\ foudre\ Saison\ 13.mp4
$
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#18 Le 20/08/2023, à 16:37
- geole
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonjour
C'est surprenant.
rename -n "s/[^[:alnum:] _.'-]//g" *
rename( * § , )
rename(a b ^ , a b )
ls -ls
total 4
4 -rw-rw-r-- 1 a a 8 août 20 17:32 ' * § '
0 -rw-rw-r-- 1 a a 0 août 20 17:29 'a b ^ '
rename "s/[^[:alnum:] _.'-]//g" *
ls -ls
total 4
4 -rw-rw-r-- 1 a a 8 août 20 17:32 ' '
0 -rw-rw-r-- 1 a a 0 août 20 17:29 'a b '
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
En ligne
#19 Le 20/08/2023, à 17:29
- Hizoka
Re : [Résolu] Supprimer les emojis des noms de fichiers
Lors de mes tests ça fonctionnait aussi sans le -n....
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#20 Le 20/08/2023, à 18:58
- Jarodd
Re : [Résolu] Supprimer les emojis des noms de fichiers
J'ai probablement merdouillé lors de mes tests.
Je viens de tout refaire, en retéléchargeant le fichier (source).
Après téléchargement du fichier, j'ai :
$ ll Ninjago\ |\ L\'amulette\ de\ foudre\ ⚡️Saison\ 13.mp4.mp4
-rw-rw-r-- 1 jarodd jarodd 112330843 juil. 11 2022 "Ninjago | L'amulette de foudre ⚡️Saison 13.mp4"
$
Commande rename avec -n :
$ rename -n "s/[^[:alnum:] _.'-]//g" Ninjago\ |\ L\'amulette\ de\ foudre\ ⚡️Saison\ 13.mp4
rename(Ninjago | L'amulette de foudre ⚡️Saison 13.mp4, Ninjago L'amulette de foudre Saison 13.mp4)
$
Puis commande rename sans -n :
$ rename "s/[^[:alnum:] _.'-]//g" Ninjago\ |\ L\'amulette\ de\ foudre\ ⚡️Saison\ 13.mp4
$
Résultat final :
$ ll Ninjago\ \ L\'amulette\ de\ foudre\ Saison\ 13.mp4
-rw-rw-r-- 1 jarodd jarodd 112330843 juil. 11 2022 "Ninjago L'amulette de foudre Saison 13.mp4"
$
Donc c'est ok pour la suppression de l'emoji
Est-il possible de remplacer les espaces par des tirets bas " _ ", et l'apostrophe par un tiret moyen " - " ?
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#21 Le 20/08/2023, à 20:39
- Hizoka
Re : [Résolu] Supprimer les emojis des noms de fichiers
rename -n "s/[^[:alnum:] _.'-]//g; s/ /_/g; s/'/-/g" *
rename(Ninjago | L'amulette de foudre ⚡Saison 13.mp4, Ninjago__L-amulette_de_foudre_Saison_13.mp4)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#22 Le 20/08/2023, à 20:55
- Jarodd
Re : [Résolu] Supprimer les emojis des noms de fichiers
Super ! Solution adoptée, merci bcp
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#23 Le 22/08/2023, à 18:35
- Jarodd
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonjour,
Je reviens sur la commande rename, comment lire l'expression régulière svp ?
rename -n "s/[^[:alnum:] _.'-]//g; s/ /_/g; s/'/-/g" *
^[:alnum:] ceci doit être "ce qui commence par les caractères alphanumériques", auxquels on ajoute l'espace, le tiret bas, le point, l'apostrophe et le tiret moyen ?
Mais tout ceci est remplacé par "rien" (le "//") ? Alors que ce sont les "autres" caractères qui sont supprimés. Donc je ne comprends pas bien le fonctionnement.
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#24 Le 22/08/2023, à 20:14
- pingouinux
Re : [Résolu] Supprimer les emojis des noms de fichiers
Bonsoir,
C'est le ^, en tête de la liste de caractères, qui indique qu'il faut tenir compte de tous les caractères, sauf ceux de la liste.
Hors ligne
#25 Le 22/08/2023, à 20:39
- Jarodd
Re : [Résolu] Supprimer les emojis des noms de fichiers
D'accord merci
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne