#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
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
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...
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.
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.
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