Quel est l'equivalent de find -iname avec aussi les accents?

Quel est l'equivalent de find -iname avec aussi les accents? - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 13-10-2015 à 02:22:31    

Salut,
 
petite question surement simple mais je n'ai pas trouve.
Comment faire pour avoir une commande "find . -iname..." avec un "iname" qui accepte aussi les accents (donc pas de soucis de case ou d'accent)?.
 
Le but serait d'avoir un truc du genre:
 
# find . -ename "ed*"..
qui trouverait des fichiers qui commencent par
> Ed..
> ed...
> éd..
 
Merci


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 13-10-2015 à 02:22:31   

Reply

Marsh Posté le 13-10-2015 à 02:39:33    

Tu peux pas.
 
Le mieux que j'ai.
 
 
ls *cution
exécution  EXÉcution
 
exc  : find -iname "EX*" | unaccent UTF-8 | grep -i ex :
 
Resultat :
./EXEcution
./execution
 
 
Ou
 find -iname "EX*" -exec unaccent UTF-8 {} \; -print

Reply

Marsh Posté le 13-10-2015 à 02:48:30    

Oups, -print double le résultat, on peut donc s'en passer.
Ca marche aussi si on spécifi le caractère accentué dans le pattern donné à find avec iname.

Reply

Marsh Posté le 13-10-2015 à 03:30:39    

Merci à toi cette fois.
Tu m'as permi d'enrichier mon propre programme.

Reply

Marsh Posté le 13-10-2015 à 07:07:39    


Pour l'instant en effet, mais j'espere que quelqu'un sait comment le pouvoir :)

  

Le probleme c'est que tu ne cherches pas "exe" mais "ex" donc tu enleves le charactere `problematique'.
Ca ne me parait pas super.
Je pense que

Code :
  1. find -iname "EX*" | unaccent UTF-8 | grep -i exe


serait mieux, mais dans tous les cas apres unaccent tu perds l'acces au fichier... vu que tu ne sais plus quel est son ortographe exacte.

 

Une autre facon de faire:

Code :
  1. find .  -regex '[eE][xX][eéE].*'


a le bon comportement mais c'est trop manuel... sauf si une fonction existe pour passer d'une variante aux autres:
donc de e a e, E, é, etc
mais aussi de é a a e, E, é, etc
(en gros l'inverse de ce que j'imagine ta fonction unaccent fait)
(bon passer de miniscule en majuscule est facile en ASCII, maiis les accents... faudrait creer une table avec tout cela, ca parait lourd)

 

edit: iregex au lieux de regex et plus de soucis de case.

 


Hmmm je ne vois pas ca fonctionnerait, quelle ligne as-tu en tete?

 

:jap:

 

Merci!


Message édité par gee le 13-10-2015 à 09:20:52

---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 13-10-2015 à 08:17:41    

J'ai fait quelques progres:

Citation :


Equivalence classes
Locale-specific names for a list of characters that are equal. The name is enclosed between `[=' and `=]'. For example, the name `e' might be used to represent all of "e," "è," and "é." In this case, [[=e=]] is a regexp that matches any of `e', `é', or `è'.


 
Mais je n'arrive pas a le faire fonctionner :/


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 13-10-2015 à 23:19:07    

https://superuser.com/questions/218 [...] -different
 
:??:


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 14-10-2015 à 00:04:58    

Justement, je l'avais lu

Citation :


The GNU tools appear to have code that causes accented letters to be treated like their base letters when matching a regex character class, if supported by the character encoding. This is intended as a "do what I mean" sort of feature to make writing regexes easier, but in this case it's getting in your way.


mais ca ne donne rien ici...
J'ai teste avec differentes locales mais sans resultat...
 
Merci


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed