Terminal-Chercher des caractères accentués |
Bienvenue invité ( Connexion | Inscription )
Terminal-Chercher des caractères accentués |
5 Oct 2012, 09:56
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
Bonjour à tous,
Notre serveur de fichiers a parfois des réactions curieuses dans certains dossiers. Après quelques recherches, je me rends compte que c'est dû au nom de dossiers (et peut-être aussi de fichiers) qui contiennent des caractères accentués ou non acceptés (comme / % ! ? …). Je suis donc à la recherche de ces dossiers et fichiers contenants ces caractères… Et… je ne sais pas comment faire dans le terminal. À mon avis, ce doit être un truc avec grep. J'aimerais d'abord faire une espèce de liste avec les dossiers/fichiers incriminés (pour savoir s'il y en a bcp). Merci pour votre aide. Olby. |
|
|
5 Oct 2012, 10:56
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
find . | grep -E "é|à|è|î|%|?|î|û"
|
|
|
8 Oct 2012, 12:13
Message
#3
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
find . | grep -E "é|à|è|î|%|?|î|û" Bonjour. Désolé de répondre si tard, mais j'étais sur un gros trucs urgents… Pour cette commande, je l'ai d'abord taper telle quelle (bêtement). Il me répond: grep: repetition-operator operand invalid Comme je ne m'y connais trop en ligne de commande… J'ai bêtement supprimé le "-E", et il m'a juste fait remarqué que je n'avais pas la permission sur certains dossiers. Merci. Olby. La commande find, je vois ce que c'est. Mais pourquoi le "." et le "|"? Olby. |
|
|
8 Oct 2012, 12:31
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
bjr,
le point c'est le répertoire d'ou tu lance la commande. Sur tu lance ta commande depuis / c'est . si tu lance ta commande depuis $HOME c'est le home de ton user mais tu peux aussi lancer la commande find: find $HOME ........ la barre verticale c'est le "pipe" car redirige la sortie stdout vers la stdin de la commande qui suit le pipe Donc le grep va filter les fichier qui ont des caractère bizarres |
|
|
8 Oct 2012, 12:34
Message
#5
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
Merci noop pour les explications.
Sauf que cette commande ne fonctionne pas chez moi. Le find ne trouve rien. Or, j'ai des dossiers et fichiers avec des accents. Olby. |
|
|
8 Oct 2012, 13:19
Message
#6
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 497 Inscrit : 4 Oct 2002 Membre no 3 936 |
Si tu n'as pas les droits admin tape "sudo[espace]" sans les guillemets avant ta commande… Le mot de passe administrateur te sera demandé (tu ne verras pas la saisie du mot de passe s'afficher à l'écran par sécurité, c'est normal, valide ensuite à l'aide de la touche [entrée] de ton clavier pour que la recherche commence…
Si tu n'es pas sur une session administrateur, il faudra avant tout te logguer en tant que tel… Tu peux le faire (par exemple) avec la commande "login" toujours sans les guillemets… Ce message a été modifié par fmereo - 8 Oct 2012, 13:20. |
|
|
8 Oct 2012, 13:36
Message
#7
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
Le problème n'est pas tellement l'inaccessibilité de certains dossiers, mais la commande que m'a donné noop ne me trouve pas les fichiers ou dossiers comportant des accents…
Bon… j'ai un peu tripatouillé tout ça. Je fais du GREP dans InDesign… le ? sert à trouver zéro ou une fois le caractère qui le précède. Il faut donc l'échapper (heu… comment?) Si je cherche find . | grep -E "é|à|è|î|ï|û" il ne me trouve rien. Or j'ai créé un dossier qui se nomme "essai de dossier accentué". Olby. |
|
|
8 Oct 2012, 21:47
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
Que dit la commande
Code locale ? |
|
|
9 Oct 2012, 08:14
Message
#9
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
Bonjour noop,
Voici le résultat de "locale": LANG="fr_BE.UTF-8" LC_COLLATE="fr_BE.UTF-8" LC_CTYPE="fr_BE.UTF-8" LC_MESSAGES="fr_BE.UTF-8" LC_MONETARY="fr_BE.UTF-8" LC_NUMERIC="fr_BE.UTF-8" LC_TIME="fr_BE.UTF-8" LC_ALL= Olby. |
|
|
9 Oct 2012, 15:41
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
Essaye peut être
Code find . | grep "$(printf '\3a9')" pour rechercher le caractère "é" |
|
|
9 Oct 2012, 16:53
Message
#11
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
Non, ça ne donne rien.
Bon, c'est pas grave. Je vais essayer de trouver une autre solution. Merci pour ton aide, noop. Olby. |
|
|
9 Oct 2012, 17:36
Message
#12
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Hello,
Tu peux tenter ça : Code find . | LANG=C grep -e '[^[:alnum:]_./-]' Ça marche pour mon Ubuntu (mais affiche un ? pour les caractères accentués), je peux pas tester sur mon Mac là. -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
9 Oct 2012, 18:00
Message
#13
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
en fait tu pourrais dumper le contenu de chaque nom de fichier avec la commande od, puis chercher les séquences d'octets qui réprésentent "é" par exemple.
|
|
|
9 Oct 2012, 19:21
Message
#14
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 6 580 Inscrit : 20 Mar 2003 Membre no 6 765 |
En fait, les noms de fichiers sont encodés non pas en utf8 standard, mas en utf à la sauce Mac.
La commande: Code find . | iconv -f UTF-8-MAC -t UTF-8 | grep [éàùè] Trouve bien des fichiers dont le nom contient l'un des caractères accentués donnés entre crochets. -------------------- késtananafout' (:
|
|
|
9 Oct 2012, 19:37
Message
#15
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 071 Inscrit : 27 Feb 2003 Membre no 6 447 |
|
|
|
9 Oct 2012, 20:46
Message
#16
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
En fait, les noms de fichiers sont encodés non pas en utf8 standard, mas en utf à la sauce Mac. La commande: Code find . | iconv -f UTF-8-MAC -t UTF-8 | grep [éàùè] Trouve bien des fichiers dont le nom contient l'un des caractères accentués donnés entre crochets. Ah je connaissais pas cet UTF8. |
|
|
9 Oct 2012, 22:35
Message
#17
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Bon, bah sur mon MBP ça marche sans trucs spéciaux.
Ci-dessous, copié-collé depuis le terminal (dans un répertoire sandbox) : Code MacBook-Pro-de-Nicosa:sandbox Nicosa$ find .
. ./héhé.jpg ./subdir ./subdir/aïe.txt ./test.txt MacBook-Pro-de-Nicosa:sandbox Nicosa$ find . | grep -e '[^a-zA-Z_./]' ./héhé.jpg ./subdir/aïe.txt -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
9 Oct 2012, 22:52
Message
#18
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 6 580 Inscrit : 20 Mar 2003 Membre no 6 765 |
Bon, bah sur mon MBP ça marche sans trucs spéciaux. Ci-dessous, copié-collé depuis le terminal (dans un répertoire sandbox) : Code MacBook-Pro-de-Nicosa:sandbox Nicosa$ find . . ./héhé.jpg ./subdir ./subdir/aïe.txt ./test.txt MacBook-Pro-de-Nicosa:sandbox Nicosa$ find . | grep -e '[^a-zA-Z_./]' ./héhé.jpg ./subdir/aïe.txt Et si tu veux ne voir QUE les dossiers qui contiennent des caractères accentués, ton "find ." il marche aussi ? -------------------- késtananafout' (:
|
|
|
10 Oct 2012, 08:11
Message
#19
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Et si tu veux ne voir QUE les dossiers qui contiennent des caractères accentués, ton "find ." il marche aussi ? Bah, c'est bien ce qu'il fait non ? J'ai fait un find tout court pour montrer l'arborescence que je ""fouille", puis un find | grep qui ne liste que les objets dont le path absolu contient au moins une lettre accentuée. Il ne fallait pas lister les fichiers "accentués", mais uniquement les répertoires en contenant ? -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
10 Oct 2012, 08:39
Message
#20
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
En fait, les noms de fichiers sont encodés non pas en utf8 standard, mas en utf à la sauce Mac. La commande: Code find . | iconv -f UTF-8-MAC -t UTF-8 | grep [éàùè] Trouve bien des fichiers dont le nom contient l'un des caractères accentués donnés entre crochets. Super… Ceci marche aussi sur mon MBP. J'essaierai tout à l'heure sur le serveur. Merci bcp pour votre aide à tous. Olby. |
|
|
10 Oct 2012, 11:43
Message
#21
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
Ça marche aussi sur mon serveur.
Encore une petite question… Comment trouver des "/", des "?", des "+"? Autrement dit, quel est le caractère qui permet d'échapper? Merci encore à tous. Olby. |
|
|
10 Oct 2012, 12:03
Message
#22
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
Affiche le clavier
|
|
|
10 Oct 2012, 14:07
Message
#23
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
Hum…
Pardonne mon ignorance, mais je ne comprends pas… Olby. |
|
|
10 Oct 2012, 16:04
Message
#24
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
|
|
|
10 Oct 2012, 16:06
Message
#25
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
Je connais le visualiseur, mais ça ne me dit pas comment échapper les caractères, si?
Olby. |
|
|
10 Oct 2012, 17:32
Message
#26
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
|
|
|
10 Oct 2012, 19:27
Message
#27
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 6 580 Inscrit : 20 Mar 2003 Membre no 6 765 |
Bah, c'est bien ce qu'il fait non ? J'ai fait un find tout court pour montrer l'arborescence que je ""fouille", puis un find | grep qui ne liste que les objets dont le path absolu contient au moins une lettre accentuée. Il ne fallait pas lister les fichiers "accentués", mais uniquement les répertoires en contenant ? C'est l'expression de ton grep qui me gênait en fait. Comment sont vus les chiffres par exemple ? -------------------- késtananafout' (:
|
|
|
11 Oct 2012, 07:59
Message
#28
|
|
Nouveau Membre Groupe : Membres Messages : 32 Inscrit : 30 Jun 2011 Membre no 168 484 |
|
|
|
11 Oct 2012, 09:22
Message
#29
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
C'est l'expression de ton grep qui me gênait en fait. Comment sont vus les chiffres par exemple ? En effet, j'avais pas géré les chiffres. Mon grep initial aurait aussi ramené les fichiers dont les path contiennent des chiffres.Une version mise à jour en conséquence : Code find . | grep -e '[^a-zA-Z0-9_./-]' J'ai aussi ajouté le "-", et il faudrait ajouter tout les caractères qu'on considère autorisés (espace, crochet, etc...)-------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
11 Oct 2012, 09:43
Message
#30
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
C'est l'expression de ton grep qui me gênait en fait. Comment sont vus les chiffres par exemple ? En effet, j'avais pas géré les chiffres. Mon grep initial aurait aussi ramené les fichiers dont les path contiennent des chiffres.Une version mise à jour en conséquence : Code find . | grep -e '[^a-zA-Z0-9_./-]' J'ai aussi ajouté le "-", et il faudrait ajouter tout les caractères qu'on considère autorisés (espace, crochet, etc...)oui comme: * $ ; { } bref tout. C'est pour celà qu'il vaut mieux filtrer que sur les accents. |
|
|
Nous sommes le : 20th April 2024 - 02:14 |