Hop, C'est tellement idiot que j'arrive pas à m'en sortir... (en bash): ls [a-z]* affiche tous les fichiers commençant par à jusqu'à z for i in [a-z] ; do echo $i; done et un truc comme ça ça marche pas. Ya un moyen simple d'avoir la liste de a à z ? Arnaud.
for i in [a-z] ; do echo $i; done
et un truc comme ça ça marche pas. Ya un moyen simple d'avoir la liste de a à z ?
en mettant le '*' omis ? for i in [a-z]* ; do echo $i; done M. -- Emmanuel Bouthenot mail : kolter@openics.org gpg : 0x414EC36E jid : kolter@im.openics.org irc : kolter@(freenode|oftc)
Quoting Emmanuel Bouthenot <kolter+dev@openics.org>:
for i in [a-z] ; do echo $i; done et un truc comme ça ça marche pas. Ya un moyen simple d'avoir la liste de a à z ? en mettant le '*' omis ? for i in [a-z]* ; do echo $i; done
Oui non mais non, je ne veux pas la liste des fichiers, je voudrais obtenir un truc du genre a b c d e f etc... Arnaud.
Oui non mais non, je ne veux pas la liste des fichiers, je voudrais obtenir un truc du genre a b c d e f
etc...
excuse moi j'avais mal compris :s dans ce cas : for i in {a..z} ; do echo $i; done M. -- Emmanuel Bouthenot mail : kolter@openics.org gpg : 0x414EC36E jid : kolter@im.openics.org irc : kolter@(freenode|oftc)
On 12/6/06, Emmanuel Bouthenot <kolter+dev@openics.org> wrote:
Oui non mais non, je ne veux pas la liste des fichiers, je voudrais obtenir un truc du genre a b c
etc...
dans ce cas :
for i in {a..z} ; do echo $i; done
jmonnet@windu ~$ for i in {a..z} ; do echo $i; done {a..z} jmonnet@windu ~$ Euh ... tu es sur ? Jeremy -- Linux Registered User #317862 Linux From Scratch Registered User #16571 Please do not send me .doc, .xls, .ppt, as I will *NOT* read them. Please send me only open formats, as OpenDocument or pdf.
On 12/6/06, Cyril Brulebois <cyril.brulebois@enst-bretagne.fr> wrote:
Jeremy Monnet <jmonnet@gmail.com> (06/12/2006):
jmonnet@windu ~$ for i in {a..z} ; do echo $i; done {a..z} J'ai le même résultat si j'utilise dash, mais avec bash, ça fait bien ce qu'Emmanuel a annoncé.
autre essai : bash version 3 génére une list, bash version 2, non. J'utilise au travail bash version 2 sur une redhat WS3 qui ne peut pas être mise à jour ... c'est pourquoi ca ne fonctionnait pas. Mes excuses, désolé pour le bruit. Jeremy -- Linux Registered User #317862 Linux From Scratch Registered User #16571 Please do not send me .doc, .xls, .ppt, as I will *NOT* read them. Please send me only open formats, as OpenDocument or pdf.
On Wed, Dec 06, 2006 at 01:02:05PM +0100, Cyril Brulebois wrote:
Jeremy Monnet <jmonnet@gmail.com> (06/12/2006):
jmonnet@windu ~$ for i in {a..z} ; do echo $i; done {a..z} J'ai le même résultat si j'utilise dash, mais avec bash, ça fait bien ce qu'Emmanuel a annoncé.
Cordialement,
En fait ça marche qu'avec bash3, le bash par défaut de sarge est par exemple le 2.05 donc ça ne marche pas non plus. de toutes façons c'est pas POSIX, donc poubelle. M. -- Emmanuel Bouthenot mail : kolter@openics.org gpg : 0x414EC36E jid : kolter@im.openics.org irc : kolter@(freenode|oftc)
On 2006-12-06 11:35:40 +0100, Arnaud Launay wrote:
for i in [a-z] ; do echo $i; done
et un truc comme ça ça marche pas. Ya un moyen simple d'avoir la liste de a à z ?
Si tu cherches à lister les caractères de a à z, je ne sais pas. La forme [...] ne sert que pour les patterns, contrairement à {...}. Cf echo [abc] et echo {a,b,c} -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Quoting Vincent Lefevre <vincent@vinc17.org>:
for i in [a-z] ; do echo $i; donc et un truc comme ça ça marche pas. Ya un moyen simple d'avoir la liste de a à z ? Si tu cherches à lister les caractères de a à z, je ne sais pas.
C'est ce que je cherche, en effet. seq 1 26 ça marche très bien, j'arrive pas à croire qu'on n'ait pas la même chose en shell... en perl ça fait a..z ...
La forme [...] ne sert que pour les patterns, contrairement à {...}. Cf echo [abc] et echo {a,b,c}
oui, mais si c'est pour tout lister à la main... Arnaud.
On 2006-12-06 12:27:20 +0100, Gwenn Gueguen wrote:
seq ne fait que les nombres mais jot a l'air de pouvoir le faire : "jot -c 26 a"
Le plus dur est d'avoir la commande jot sur son système :(
Oui. Je pensais qu'un printf %c ferait l'affaire (noter que printf est POSIX), mais le %c ne fonctionne pas dans ce sens. Par exemple, vin:~> printf "%c\n" 97 9 au lieu de "a". Mais: for i in {97..122}; do printf "\x`printf %x $i`\n"; done fait ce que l'on veut en bash et zsh. Avec dash, on peut utiliser `seq 97 122` au lieu de {97..122}, mais le \xHH dans printf n'est pas supporté (probablement pas POSIX). -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Quoting Vincent Lefevre <vincent@vinc17.org>:
fait ce que l'on veut en bash et zsh. Avec dash, on peut utiliser `seq 97 122` au lieu de {97..122}, mais le \xHH dans printf n'est pas supporté (probablement pas POSIX).
Bref, il n'y a absolument aucun moyen simple pour énumérer l'alphabet, quoi. Reste plus que le "classique" perl -e "print a..z" Arnaud...
Hello my 2-cents: for i in $(seq 1 26); do expr substr "abcdefghijklmnopqrstuvwxyz" $i 1; done ou: for i in $(seq 97 122); do hex=$(printf %x $i); echo -e "\x"$hex; done Contrairement à ce qu'annonce le --help de seq, l'option -f ne prend *que* les format %e, %f et %g. S'il avait accepté le %x, on se serait passé de la variable intermédiaire 'hex'. Maintenant, à savoir si c'est Posix.... =) a+ Arnaud Launay a écrit :
Quoting Vincent Lefevre <vincent@vinc17.org>:
fait ce que l'on veut en bash et zsh. Avec dash, on peut utiliser `seq 97 122` au lieu de {97..122}, mais le \xHH dans printf n'est pas supporté (probablement pas POSIX).
Bref, il n'y a absolument aucun moyen simple pour énumérer l'alphabet, quoi. Reste plus que le "classique" perl -e "print a..z"
Arnaud... _______________________________________________ Shell mailing list http://cli.asyd.net/home/ https://lists.asyd.net/mailman/listinfo.cgi/shell
On 2006-12-15 11:59:51 +0100, Philippe Jacquot wrote:
for i in $(seq 97 122); do hex=$(printf %x $i); echo -e "\x"$hex; done
Pas POSIX. En particulier, ça ne fonctionne pas avec dash. C'est un peu ce que je disais pour for i in {97..122}; do printf "\x`printf %x $i`\n"; done concernant le \x. D'ailleurs, echo a des comportements très différents suivant les implémentations, et c'est pour cela qu'on conseille d'utiliser printf à la place. C'est même dit explicitement par POSIX: It is not possible to use echo portably across all POSIX systems unless both -n (as the first argument) and escape sequences are omitted. [...] New applications are encouraged to use printf instead of echo. Cf <http://www.opengroup.org/onlinepubs/009695399/utilities/echo.html>. Maintenant, ceci semble être portable sous Linux avec n'importe quel shell: for i in $(seq 97 122); do printf "\\`printf %o $i`\n"; done Cf http://www.opengroup.org/onlinepubs/009695399/utilities/printf.html http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap05.html Reste que seq n'est pas POSIX. Linux le fournit (via les coreutils), mais pas Mac OS X 10.4 (je l'ai juste parce que j'ai installé les coreutils). Ceci est, je pense, complètement POSIX: i=97 while [ $i -le 122 ] do printf "\\`printf %o $i`\n" i=$(($i+1)) done (on peut aussi l'écrire sur une seule ligne, en utilisant des ";"). Mais avec zsh, si on a activé l'option PRINT_EXIT_VALUE, on se retrouve avec un "zsh: exit 1" à la fin à cause du test qui échoue. Ça ne se produit pas avec la construction spéciale [[ ... ]]], mais cette construction n'est pas POSIX. Cependant, ceci semble OK: i=97; (while [ $i -le 122 ]; do printf "\\`printf %o $i`\n"; i=$(($i+1)); done) Mais ce n'est pas pour autant portable dans l'absolu, même avec des shells que l'on peut croire POSIX: avec zsh 4.2.5, le printf de zsh (donc celui utilisé par défaut) ne supporte pas la forme \ddd (le support POSIX n'est donc pas complet). Cela exclut donc un grand nombre de systèmes si le shell est zsh. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
participants (7)
-
Arnaud Launay
-
Cyril Brulebois
-
Emmanuel Bouthenot
-
Gwenn Gueguen
-
Jeremy Monnet
-
Philippe Jacquot
-
Vincent Lefevre