bash: grep : commande introuvable

Voila plusieurs fois que je vois passer cette erreur comme par exemple aujourd'hui sur la liste de diffusion Ubuntu-fr (tient ce message n'apparaît pas dans les archives officielles de septembre ?). J'ai moi même eu ce problème lorsque j'ai commencé à utiliser Ubuntu Hoary, voila ce qui peut se produire sur un exemple tout simple :

 

> tigrou@Lorien[192.168.0.243]:~$ ls ~/Desktop | grep 'JPG'
bash:  grep : commande introuvable

 

L'utilitaire grep introuvable sur un système Linux ? c'est probablement possible mais après vérification il est bien installé et fonctionne correctement sur d'autres exemples, alors d'où vient le problème ?

Le problème se situe en fait lors de la frappe de la commande. En effet, pour taper un pipe (|) il faut presser simultanément AltGr et le chiffre 6 sur le haut du clavier et lorsque l'on tappe un peu rapidement il arrive fréquement que le caractère espace suivant soit frappé alors que la touche AltGr est encore enfoncée. Or, avec le clavier fr-latin9 (dont une révision est en discussion) cette combinaison produit un caractère non-ASCII qui est une espace insécable (espace est féminin lorsqu'on parle d'un caractère) que le shell ne reconnait pas malgré le fait que son apparence soit la même dans un terminal. D'ailleurs il faut remarquer que dans le message d'erreur du shell, il y a visiblement deux espaces avant grep. Le message est en fait "bash: <espace insécable>grep : commande introuvable".

Le fait que le clavier permette de taper des caractères spéciaux permettant de respecter la typographie de la langue française me paraît plutôt une bonne chose. Ici le problème est plus la combinaison malheureuse ajoutée au fait que visuellement il n'y ait pas de différence entre l'espace et l'espace insécable. Comme souvent sous Linux, il est possible de changer ce comportement à l'aide de xmodmap. Pour cela il suffit de créer un fichier .Xmodmap dans votre répertoire utilisateur (attention à la casse sinon le fichier ne sera pas chargé automatiquement) avec le contenu suivant :

 

keycode 65 = space space space space space

 

Ce fichier indique que la touche dont le code est 65 (la barre d'espace) associée à n'importe quelle touche modifier (shift, control, alt, ...) produit une espace simple. Je n'ai pas l'utilité de taper des espaces insécables mais du coup avec cette technique il est possible d'assigner n'importe quelle combinaison de touche à un caractère particulier. Par exemple si on souhaite pouvoir insérer des espaces insécables à l'aide de Shift+Espace (combinaison plus difficile à taper par erreur ou enchaînement rapide) on peut mettre dans ce fichier :

 

keycode 65 = space nobreakspace space space space

 

Tags : Truc, bash, Ubuntu, Linux, shell

» Commentaires

- Récurrent (#61649) par kagou le 01 Octobre 2006 à 09:03
Ce problème est récurrent (http://www.lucas-nussbaum.net/blog/?p=142) je me demande s'il ne faudrait pas faire en sorte qu'un espace insécable soit affiché différemment d'un simple espace en console (comme par exemple en changeant la couleur de fond)
- Voilà pourquoi ! (#61652) par JP le 01 Octobre 2006 à 16:03
Cela m'est arrivé plusieurs de rencontrer ce problème... je l'avais résolu en ne mettant plus d'espace entre pipe et grep. C'était un mystère pour moi de voir cette commande fonctionner de façon aléatoire.

En fait cela provenait de ma dyslexie digitale !

Merci pour cette explication.
- oui (#61653) par Damien le 01 Octobre 2006 à 17:07
@Kagou : oui effectivement, il n'est PAS normal que deux caractères différents soit représentés de la même manière.

@JP : je crois qu'on est beaucoup à souffrir de "dyslexie digitale" :)

- Bonne info (#61654) par jm le 02 Octobre 2006 à 10:07
Idem, j'ai déjà eu le problème sans comprendre sa source... c'est pourtant pas faux dedire que grep est basique de chez basique... A charge de revanche !
- probleme réglé sous X uniquement (#63744) par Eric le 02 Décembre 2006 à 11:24
Comme toi j'avais été confronté au problème dans les versions précédentes d'ubuntu. L'upgrade en Edgy l'a fait revenir.
Il me semble qu'il y avait une autre astuce pour contourner le problème en mode console, mais je n'ai gardé aucune note sur la solution. Une idée ?
- grep (#64005) par ali le 12 Janvier 2007 à 21:56
source de la commande grep en language c
merci.

» Trackback

Aucun trackback

Les trackacks sont désactivés

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.

Login