OVH Cloud OVH Cloud

locate et (maj|min)uscules

11 réponses
Avatar
kato fong
Salut les pros,

Sous linux, j'ai l'habitude de taper la commande locate avec l'option
"-i" qui permet de trouver les noms de fichier indépendamment de leur
casse.
Sous macos x, locate ne le permet pas. Y a-t-il un contournement
possible, en dehors de find ?

D'avance merci

--
kato fong

10 réponses

1 2
Avatar
patpro ~ patrick proniewski
In article ,
kato fong wrote:

Salut les pros,

Sous linux, j'ai l'habitude de taper la commande locate avec l'option
"-i" qui permet de trouver les noms de fichier indépendamment de leur
casse.
Sous macos x, locate ne le permet pas.


c'est lourd hein ? :)

Y a-t-il un contournement
possible, en dehors de find ?


tu peux installer slocate via DarwinPorts par exemple. Y'a probablement
la meme chose dand Fink.


patpro

Avatar
kato fong
On Wed, 01 Dec 2004 12:01:12 +0100, patpro ~ patrick proniewski
wrote:

Sous linux, j'ai l'habitude de taper la commande locate avec l'option
"-i" qui permet de trouver les noms de fichier indépendamment de leur
casse.
Sous macos x, locate ne le permet pas.


c'est lourd hein ? :)


c clair :^)


Y a-t-il un contournement
possible, en dehors de find ?


tu peux installer slocate via DarwinPorts par exemple. Y'a probablement
la meme chose dand Fink.


Merci. Je n'avais rien trouvé avec fink.

--
kato fong


Avatar
Stephane Chazelas
2004-12-01, 11:53(+01), kato fong:
Salut les pros,

Sous linux, j'ai l'habitude de taper la commande locate avec l'option
"-i" qui permet de trouver les noms de fichier indépendamment de leur
casse.
Sous macos x, locate ne le permet pas. Y a-t-il un contournement
possible, en dehors de find ?
[...]


Au lieu de

locate toto

locate '*[tT][oO][tT][oO]*'

comme ca peut etre un peu fastidieux, tu peux ecrire une
fonction (je suppose que ton shell est zsh)

locate-i() {
local i
for ((i=1; i<=$#; i++)); do
[[ $argv[i] = -* ]] ||
argv[i]="*${argv[i]//(#m)[[:alpha:]]/[${(u)MATCH}${(U)MATCH}]}*"
done
locate "$@"
}

a mettre dans le ~/.zshrc ou dans le fpath.

--
Stephane

Avatar
Saïd
Stephane Chazelas :
2004-12-01, 11:53(+01), kato fong:
Salut les pros,

Sous linux, j'ai l'habitude de taper la commande locate avec l'option
"-i" qui permet de trouver les noms de fichier indépendamment de leur
casse.
Sous macos x, locate ne le permet pas. Y a-t-il un contournement
possible, en dehors de find ?
[...]


Au lieu de

locate toto

locate '*[tT][oO][tT][oO]*'



brian-~ $ locate top |wc -l
5723
brian-~ $ locate '*[t][o][p]*'|wc -l
0

Je n'ai jamais trouve comment chercher une exprssion reguliere avec locate.

--
Saïd.
C programmers never die - they're just cast into void.


Avatar
Stephane Chazelas
2004-12-01, 11:25(+00), Saïd:
[...]
Au lieu de

locate toto

locate '*[tT][oO][tT][oO]*'



brian-~ $ locate top |wc -l
5723
brian-~ $ locate '*[t][o][p]*'|wc -l
0


Alors, c'est un bug. Ca devrait marcher d'apres
http://www.osxfaq.com/man/1/locate.ws

Je n'ai jamais trouve comment chercher une exprssion reguliere avec locate.
[...]


Ce ne sont pas des expressions regulieres (plutot rationnelles
en Francais) mais des "globbing patterns" ou des "shell
wildcards" ou des "fnmatch(3) patterns".

--
Stephane


Avatar
kato fong
On Wed, 1 Dec 2004 11:17:24 +0000, Stephane Chazelas
wrote:


Au lieu de

locate toto

locate '*[tT][oO][tT][oO]*'


En fait, j'avais essayé cette possibilité car elle est documentée dans
le "man" ... mais, sauf erreur de ma part, ça ne marche pas.

--
kato fong

Avatar
Saïd
kato fong :
On Wed, 1 Dec 2004 11:17:24 +0000, Stephane Chazelas
wrote:


Au lieu de

locate toto

locate '*[tT][oO][tT][oO]*'


En fait, j'avais essayé cette possibilité car elle est documentée dans
le "man" ... mais, sauf erreur de ma part, ça ne marche pas.


Ca ne marche pas non plus sous linux, si ca peut te rassurer.

--
Saïd.
C programmers never die - they're just cast into void.


Avatar
kato fong
On 01 Dec 2004 16:32:22 GMT, Saïd wrote:


locate '*[tT][oO][tT][oO]*'


En fait, j'avais essayé cette possibilité car elle est documentée dans
le "man" ... mais, sauf erreur de ma part, ça ne marche pas.


Ca ne marche pas non plus sous linux, si ca peut te rassurer.


Je n'aurais jamais eu l'idée d'essayer ça sous linux ;-)

--
kato fong



Avatar
Stephane Chazelas
2004-12-01, 17:25(+01), kato fong:
[...]
Au lieu de

locate toto

locate '*[tT][oO][tT][oO]*'


En fait, j'avais essayé cette possibilité car elle est documentée dans
le "man" ... mais, sauf erreur de ma part, ça ne marche pas.
[...]


A voir
http://www.opensource.apple.com/darwinsource/10.3/shell_cmds-53/locate/locate/locate.c

c'est en effet codé avec les pieds, tu ferais mieux d'installer
slocate, ou faire ton updatedb/locate a la main (c'est 3 lignes
de shell pour chaque (avec find/gzip/zgrep) et mon experience
montre que ca donne de meilleurs resultat (que GNU locate en
tout cas)).

Sinon, a tout hasard, essaie:
locate '/*[tT][oO][tT][oO]*'

--
Stephane


Avatar
Saïd
Stephane Chazelas :
Sinon, a tout hasard, essaie:
locate '/*[tT][oO][tT][oO]*'



Ca marche, effectivement. Il est timbré le concepteur de locate.

--
Saïd.
C programmers never die - they're just cast into void.

1 2