IPB

Bienvenue invité ( Connexion | Inscription )

2 Pages V   1 2 >  
Reply to this topicStart new topic
> Terminal-Chercher des caractères accentués
Options
Olby
posté 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.
Go to the top of the page
 
+Quote Post
noop
posté 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 "é|à|è|î|%|?|î|û"
Go to the top of the page
 
+Quote Post
Olby
posté 8 Oct 2012, 12:13
Message #3


Nouveau Membre


Groupe : Membres
Messages : 32
Inscrit : 30 Jun 2011
Membre no 168 484



Citation (noop @ 5 Oct 2012, 11:56) *
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.
Go to the top of the page
 
+Quote Post
noop
posté 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
Go to the top of the page
 
+Quote Post
Olby
posté 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.
Go to the top of the page
 
+Quote Post
fmereo
posté 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.
Go to the top of the page
 
+Quote Post
Olby
posté 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.
Go to the top of the page
 
+Quote Post
noop
posté 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


?
Go to the top of the page
 
+Quote Post
Olby
posté 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.
Go to the top of the page
 
+Quote Post
noop
posté 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 "é"
Go to the top of the page
 
+Quote Post
Olby
posté 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.
Go to the top of the page
 
+Quote Post
Nicosa
posté 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
MacBook Pro 15"(mid2007) , Core2Duo 2.2GHz, 2x2Go de RAM, SSD Crucial M225 256Go, sous OSX 10.6.7 Snow Leopard [à vendre]
[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"
Go to the top of the page
 
+Quote Post
noop
posté 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.
Go to the top of the page
 
+Quote Post
chombier
posté 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' (:
Go to the top of the page
 
+Quote Post
Joël Pierre
posté 9 Oct 2012, 19:37
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 071
Inscrit : 27 Feb 2003
Membre no 6 447



Citation (Olby @ 5 Oct 2012, 10:56) *
J’aimerais d'abord faire une espèce de liste avec les dossiers/fichiers incriminés (pour savoir s'il y en a bcp).


On peut aussi changer tous les caractères qui peuvent poser problème avec des utilitaires comme Renamer4Mac, File List, Name Mangler, etc.
Go to the top of the page
 
+Quote Post
noop
posté 9 Oct 2012, 20:46
Message #16


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 3 Nov 2005
Membre no 49 239



Citation (chombier @ 9 Oct 2012, 20:21) *
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.
Go to the top of the page
 
+Quote Post
Nicosa
posté 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
MacBook Pro 15"(mid2007) , Core2Duo 2.2GHz, 2x2Go de RAM, SSD Crucial M225 256Go, sous OSX 10.6.7 Snow Leopard [à vendre]
[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"
Go to the top of the page
 
+Quote Post
chombier
posté 9 Oct 2012, 22:52
Message #18


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 580
Inscrit : 20 Mar 2003
Membre no 6 765



Citation (Nicosa @ 9 Oct 2012, 23:35) *
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 ? biggrin.gif


--------------------
késtananafout' (:
Go to the top of the page
 
+Quote Post
Nicosa
posté 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



Citation (chombier @ 9 Oct 2012, 23:52) *
Et si tu veux ne voir QUE les dossiers qui contiennent des caractères accentués, ton "find ." il marche aussi ? biggrin.gif
huh.gif
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
MacBook Pro 15"(mid2007) , Core2Duo 2.2GHz, 2x2Go de RAM, SSD Crucial M225 256Go, sous OSX 10.6.7 Snow Leopard [à vendre]
[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"
Go to the top of the page
 
+Quote Post
Olby
posté 10 Oct 2012, 08:39
Message #20


Nouveau Membre


Groupe : Membres
Messages : 32
Inscrit : 30 Jun 2011
Membre no 168 484



Citation (chombier @ 9 Oct 2012, 20:21) *
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.
Go to the top of the page
 
+Quote Post
Olby
posté 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.
Go to the top of the page
 
+Quote Post
noop
posté 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
Go to the top of the page
 
+Quote Post
Olby
posté 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.
Go to the top of the page
 
+Quote Post
noop
posté 10 Oct 2012, 16:04
Message #24


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 3 Nov 2005
Membre no 49 239



Citation (Olby @ 10 Oct 2012, 15:07) *
Hum…
Pardonne mon ignorance, mais je ne comprends pas…

Olby.

ooops. le \ est le caractère échappement

Ce message a été modifié par noop - 10 Oct 2012, 16:07.
Go to the top of the page
 
+Quote Post
Olby
posté 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.
Go to the top of the page
 
+Quote Post
noop
posté 10 Oct 2012, 17:32
Message #26


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 3 Nov 2005
Membre no 49 239



Citation (Olby @ 10 Oct 2012, 17:06) *
Je connais le visualiseur, mais ça ne me dit pas comment échapper les caractères, si?


Olby.


Voir message au dessus
Go to the top of the page
 
+Quote Post
chombier
posté 10 Oct 2012, 19:27
Message #27


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 580
Inscrit : 20 Mar 2003
Membre no 6 765



Citation (Nicosa @ 10 Oct 2012, 09:11) *
huh.gif
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' (:
Go to the top of the page
 
+Quote Post
Olby
posté 11 Oct 2012, 07:59
Message #28


Nouveau Membre


Groupe : Membres
Messages : 32
Inscrit : 30 Jun 2011
Membre no 168 484



Citation (noop @ 10 Oct 2012, 17:04) *
ooops. le \ est le caractère échappement


OK.
Merci encore.

Olby.
Go to the top of the page
 
+Quote Post
Nicosa
posté 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



Citation (chombier @ 10 Oct 2012, 20:27) *
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.
jap.gif

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
MacBook Pro 15"(mid2007) , Core2Duo 2.2GHz, 2x2Go de RAM, SSD Crucial M225 256Go, sous OSX 10.6.7 Snow Leopard [à vendre]
[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"
Go to the top of the page
 
+Quote Post
noop
posté 11 Oct 2012, 09:43
Message #30


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 3 Nov 2005
Membre no 49 239



Citation (Nicosa @ 11 Oct 2012, 10:22) *
Citation (chombier @ 10 Oct 2012, 20:27) *
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.
jap.gif

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.
Go to the top of the page
 
+Quote Post

2 Pages V   1 2 >
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 20th April 2024 - 02:14