Grep & expressions rationnelles

Yop.

Petite question : Comment fonctionne grep avec les regexp?

Par exemple, je vais dans le répertoire images, je liste le contenu ce qui donne ceci :

image.00 image.01 xp.00 xp.02

Maintena, j’aimerais obtenir un resultat comme ceci (via les regexp en utilisant “grep”) :

image image xp xp

Comme je me suis mis depuis peu aux expression rationel, j’ai imagine un motif comme ceci : \b\w[a-zA-Z]+ (PS : Il n’aura pas de numéros dans le nom du fichier)

Maitenant comment dois-je l’utiliser avec grep ?

parce que lorsque je lance la commde suivante : [code]ls | grep -E " \b\w[a-zA-Z]+" il me sort rien…

Une idée ?

Tu n’as pas compris le fonctionnement de grep, ca parait evident.

grep n’affiche que ce qui matche ton expression reguliere. Pour afficher le resultat de ls modifie, tu dois utiliser sed et non pas grep…

LoneWolf
Oh mince, j’ai tout confondu B)

On pourrait pourtant imaginer que du haut de ses 5 ans d’expérience Linux, il saurait utiliser les commandes de base…

(Réponse : sed ‹ s/..*// ›)

ah oui , ouf ! je me disais aussi, comme nt il veut fare ça avec grep … je me sentais un peu con , mais non en fait !!

en effet utilise SED comme dit UNREAL B)

sinon, pour dégager les suffixes des noms de fichiers, y’a basename qui marche bien B)

Mais il faut connaitre le suffixe a l’avance (du moins dans le basename BSD, flemme de regarder la manpage de la version GNU qui doit certainement faire tout, même le café B) ).

En 25000 lignes de code ça ne serait pas etonnant… Suffit juste d’écrire le pilote GNU Hurd pour contrôler la cafetière USB.

vous voulez la gnu’s method of a successful living (sous GPLv3 pour faire plaisir à GloP) ?

tu fais un grep sur les extensions (donc une regexp qui chope les x caractères après le . final), tu fous le contenu du grep dans un tableau (avec un bon mélange perl + shell des familles)
ensuite, un basename appelé avec chacune des extensions trouvées
et pour finir, un sed pour renommer le tout.

ah, et ça peut aussi servir pour décrypter le génome.

sisi B)

vns : ta méthode me paraît fort intéressante, on devrait vraiment déposer un brevet logiciel dessus pour faire plaisir à l’ami Richard B)

Patent n° 13487321324657.1 : “Overkill method based on GPLed utilities for doing some useless task”
[snip=“description d’une procédure infiniment reloue”]

Ah merde, c’est déjà fait.

si ton separateur est toujour un point, un petit awk fait bien l’affaire aussi (j’aime pas sed, faut dire que j’ai jamais rien reussi a en tirer, a chaque fois j’ai un truc qui merde B) )

ls |awk -F’.’ ‘{print $1}’

Pour quoi pas après tout B)

Ou sed ‹ s/.[^.]*$// › pour gerer le cas des fichiers avec plusieurs points dans le nom.