Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2006, 18h39   #1
Membre du Club
 
Inscription : juillet 2004
Messages : 106
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 106
Points : 44
Points : 44
Par défaut Fichier ayant une extension autre que *.sh

Voilà, j'ai cherché sur google , j'ai lu des dixaines de pages concernant la syntaxe des expréssions régulières.
Mais biensur, je suis arrivé aux bouts de mes forces.

Et je me tourne vers vous concernant ma problématique:

Lister des fichiers de mon répertoire courant (je sais faire celà) qui ont une extension autre que sh.

Je me suis tourné vers un:
Code :
find . -regex '.*[^sh]$'
mais évidemment ca ne marche pas et je suis bloqué.

Peut-être seriez vous m'aider?
fantomasmusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2006, 20h55   #2
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
bonjour,
avec ceci, ça m'affiche tout sauf les .sh
Code :
find .  -name '*.[^sh]' -print
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 10h12   #3
Membre du Club
 
Inscription : juillet 2004
Messages : 106
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 106
Points : 44
Points : 44
En faites, je crois qu'il y a un soucis

je fais un ls de mon dossier courant
:
Code :
1
2
3
 
$ ls
$ fichier.bidon  menu.sh  menu.sh~  lol.c  test.txt

lorsque je fais la commande, le résultat est curieux
:

Code :
1
2
find . -name '*.[^sh]'
lol.c
Pourquoi affiche-t-il que le c?
=> Dans les autres répertoires, j'ai testé et je me suis rendu compte quand créant un fichier bidon.b ou tutu.l (bref avec une lettre en extension seulement) ils étaient affichés.

Donc c'est presque ça, je tourne autour du pot.

Ah j'ai trouvé il me semble:

Il suffit de rajouter l'étoile (*) de cette manière:
Code :
1
2
 
find . -name '*.[^sh]*' -print
Voilà, je ne sais pas si quelqu'un va tester ma commande, donc mickaël je passe en résolu merci pour ton aide car sans toi je n'aurai pas progressé.

Si mon exemple peut aider d'autres personnes, tant mieux.

Bonne journée à tous.

ps: developpez.com ca "rosk" xD (j'avais longuement discuté avec un de vos membres/admin au salon nunux à la defense l'an passé, j'avais adoré)
fantomasmusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 18h01   #4
Membre du Club
 
Inscription : juillet 2004
Messages : 106
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 106
Points : 44
Points : 44
Bon je repasse le topic en "pas résolu" (dsl^^):

Citation:
Il suffit de rajouter l'étoile (*) de cette manière:
Code :
1
2
 
find . -name '*.[^sh]*' -print
En faites, en rajoutant l' *, j'ai tous les fichiers dont l'extension commencent et contiennent par sh mais malheursement je peux avoir aussi xxx.short, xxx.shishi, xxx.shamallow, xxx.sharp etc..

Code :
1
2
3
4
5
find . -name '*.[^sh]*'
> toto.sh
> cpasgagné.sh
> tartiflete.shasha
> test.shard

Bref, j'aimerais donc paufiner l'expréssion régulière de sorte que celà ne prenne que l'extension en question et rien d'autre.

j'aimerai obtenir:

Code :
1
2
3
find . -name ':mouarf:'
> toto.sh
> cpasgagné.sh

Merci
fantomasmusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 18h17   #5
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
j'ai mis n'importe quoi dans mon post précédent un simple
Code :
find . -name '*.sh' -print
suffit. je devais être dans un autre état la dernière fois
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 18h39   #6
Membre du Club
 
Inscription : juillet 2004
Messages : 106
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 106
Points : 44
Points : 44
En faites, j'ai aussi changé l'énoncé entre temps.

Avant mon but était d'afficher seulement ce qui n'est pas "sh", donc ta dernière réponse n'est pas en accord avec ça.

En faites, c'est en avancant dans un projet que j'ai rencontré le problème avec les shasha, shishi etc..

J'ai fais un méli-mélo, donc à priori, c'est normal que tu n'es pas compris.

Disons que pour "*.sh" moi aussi j'ai cherché midi à 14 heures...

je passe en résolu cette fois-ci=)
fantomasmusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h08.


 
 
 
 
Partenaires

Hébergement Web