Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/10/2010, à 12:37

Popsitune

[RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

Bonjour,
Je suis débutant en ce qui concerne linux je l'ai téléchargé il y a quelque jours et je commence a utilisé le terminal dans le but d'écrire des script.
Voila mon  problème. Je souhaite utilisé la commande Ls pour recherche dans le dossier ou je suis tout les fichiers commancant par une majuscule.
j'écris donc , ls [A-Z]*
Malheuresement, en ecrivant cette commande, le resultat afficher contient tout les fichier de mon dossier crée pour l'occasion (nom des fichier : papa , poopi , pop, Ause) et pas seulement celui qui m'interesse c'est a dire ( Ause).
j'ai recherché sur le net une solution a mon problème et les réponses que j'ai trouvé semble correspondre a ce que j'ai ecris.
Merci d'avance a ceux qui reussiront a m'aider  smile

Dernière modification par Popsitune (Le 26/10/2010, à 12:58)

Hors ligne

#2 Le 26/10/2010, à 12:54

geenux

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

Tu peux faire

ls|grep -e "^[A-Z].*"

Hors ligne

#3 Le 26/10/2010, à 12:54

serged

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

ls [[:upper:]]*

Mais pas compris pourquoi il faut doubler les []:
le man bash propose d'utiliser [:class:] (où class est quelque chose dans alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#4 Le 26/10/2010, à 12:57

Popsitune

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

Merci beaucoup pour vous réponse ! en effet sa marche comme sa  smile

Hors ligne

#5 Le 26/10/2010, à 13:17

Postmortem

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

C'est quand même bizarre, chez moi ls [A-Z]* fonctionne très bien...

geenux a écrit :

Tu peux faire

ls|grep -e "^[A-Z].*"

ls|grep "^[A-Z]" suffit

Dernière modification par Postmortem (Le 26/10/2010, à 13:22)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#6 Le 26/10/2010, à 13:21

credenhill

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

hello

export LC_COLLATE=C
ls [A-Z]*

Hors ligne

#7 Le 26/10/2010, à 13:39

FaustXVI

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

serged a écrit :
ls [[:upper:]]*

Mais pas compris pourquoi il faut doubler les []:
le man bash propose d'utiliser [:class:] (où class est quelque chose dans alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit


Il faut les doubler parce que tu utilises une classe. Si tu ne les double pas, grep pense qu'il a le choix parmis la liste des caractères que tu lui propose (soit : soit u soit p ...)

Pour les greps, je conseil d'utiliser plutôt egrep qui permet d'utiliser les expressions régulières étendues. Ainsi pour récupérer la liste des fichiers qui commence par une majuscule :

ls | egrep "^[[:upper:]]+.*"

Pour l'explication :
- ls récupère la liste des fichier et le passe à egrep
- egrep recherche l'expression régulière qui dit (symbole puis explication)
   ^ : ligne qui commence par
   [[:upper:]]+ : au moins une lettre en majuscule
  .* : puis n'importe quelle chaine de caractères


99% de conneries ne vaudront jamais 1% de vérités.
En théorie, la théorie et la pratique sont la même chose. En pratique, c'est différent.

Hors ligne

#8 Le 26/10/2010, à 13:54

Hizoka

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

ls [A-Z]* => me fait l'equivalent de ls -R... sur mes dossiers A-Z


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#9 Le 26/10/2010, à 14:16

ehmicky

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

Sur mon terminal, [A-Z] ne respecte pas l'ordre ASCII, car l'alphabet est rangé selon : AaBbCc, etc. pour le globbing. Donc [A-Z] prend les minuscules au passage. LC_COLLATE=C de credenhill résout le problème (ou utiliser directement ls [[:upper:]]*)

Dernière modification par ehmicky (Le 26/10/2010, à 14:23)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#10 Le 27/10/2010, à 07:42

serged

Re : [RESOLU]Débutant , ls [A-Z]* ne fonctionne pas.

Hizoka a écrit :

ls [A-Z]* => me fait l'equivalent de ls -R... sur mes dossiers A-Z

Il faut utiliser l'option -d

ls -d [A-Z]*
ls -d [[-upper-]]*

(ou tout autre filtre)


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne