Je ne veux pas te paraitre désagréable, mais dans le genre compliqué et inutile j'ai rarement vu aussi fort, pourtant ton niveau en scripting shell n'est pas mauvais. Ou alors quelque chose m'échappe dans ta façon de faire ce qui ne serait pas étonnant vu ma fatigue.
Sinon, je propose ceci :
$ echo ${cible::3}
ou bien :
$ expr substr "$cible" 1 3
-- Sébastien Monbrun aka TiChou
Dans le message <news:dqm6sg$2jj$1@nef.ens.fr>,
*Luc Habert* tapota sur f.c.o.l.configuration :
Olivier V :
Comment obtenir, dans un script, les 3 premières lettres du nom d'un
fichier (connu sous $cible) ?
Je ne veux pas te paraitre désagréable, mais dans le genre compliqué et
inutile j'ai rarement vu aussi fort, pourtant ton niveau en scripting shell
n'est pas mauvais. Ou alors quelque chose m'échappe dans ta façon de faire
ce qui ne serait pas étonnant vu ma fatigue.
Je ne veux pas te paraitre désagréable, mais dans le genre compliqué et inutile j'ai rarement vu aussi fort, pourtant ton niveau en scripting shell n'est pas mauvais. Ou alors quelque chose m'échappe dans ta façon de faire ce qui ne serait pas étonnant vu ma fatigue.
Sinon, je propose ceci :
$ echo ${cible::3}
ou bien :
$ expr substr "$cible" 1 3
-- Sébastien Monbrun aka TiChou
Nicolas George
Sébastien Monbrun aka TiChou wrote in message :
Sinon, je propose ceci :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et zsh me font une erreur (bad substitution / closing brace expected), et avec bash ça donne l'identité.
Avec zsh, on peut faire :
$cible[1,3]
Sébastien Monbrun aka TiChou wrote in message
<bzium.20060118220123@florizarre.tichou.org>:
Sinon, je propose ceci :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et
zsh me font une erreur (bad substitution / closing brace expected), et avec
bash ça donne l'identité.
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et zsh me font une erreur (bad substitution / closing brace expected), et avec bash ça donne l'identité.
Avec zsh, on peut faire :
$cible[1,3]
lhabert
Sébastien Monbrun aka TiChou :
Je ne veux pas te paraitre désagréable, mais dans le genre compliqué et inutile j'ai rarement vu aussi fort,
:-)
Sinon, je propose ceci :
$ echo ${cible::3}
Je ne connais pas les whizzbangeries de bash, donc je pouvais pas le proposer.
ou bien :
$ expr substr "$cible" 1 3
Ah oui, bien sur, j'aurais du penser à expr. Enfin, note qu'il faut quand même le combiner avec le reste de ce que j'ai grotesquifié, au cas où le troisième caractère serait un n :
A=`expr substr "$cible" 1 3; echo a` B=${A%a}
Sébastien Monbrun aka TiChou :
Je ne veux pas te paraitre désagréable, mais dans le genre compliqué et
inutile j'ai rarement vu aussi fort,
:-)
Sinon, je propose ceci :
$ echo ${cible::3}
Je ne connais pas les whizzbangeries de bash, donc je pouvais pas le
proposer.
ou bien :
$ expr substr "$cible" 1 3
Ah oui, bien sur, j'aurais du penser à expr. Enfin, note qu'il faut quand
même le combiner avec le reste de ce que j'ai grotesquifié, au cas où le
troisième caractère serait un n :
Je ne veux pas te paraitre désagréable, mais dans le genre compliqué et inutile j'ai rarement vu aussi fort,
:-)
Sinon, je propose ceci :
$ echo ${cible::3}
Je ne connais pas les whizzbangeries de bash, donc je pouvais pas le proposer.
ou bien :
$ expr substr "$cible" 1 3
Ah oui, bien sur, j'aurais du penser à expr. Enfin, note qu'il faut quand même le combiner avec le reste de ce que j'ai grotesquifié, au cas où le troisième caractère serait un n :
A=`expr substr "$cible" 1 3; echo a` B=${A%a}
Calimero
Nicolas George wrote:
Sébastien Monbrun aka TiChou wrote in message :
Sinon, je propose ceci :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et zsh me font une erreur (bad substitution / closing brace expected), et avec bash ça donne l'identité.
:~$ cible=TotoLeZero :~$ echo ${cible::3} Tot :~$ bash --version GNU bash, version 3.00.16(1)-release (i386-pc-linux-gnu) Copyright (C) 2004 Free Software Foundation, Inc. :~$
Les joies de la portabilité ;-)
-- @+ Calimero
Nicolas George wrote:
Sébastien Monbrun aka TiChou wrote in message
<bzium.20060118220123@florizarre.tichou.org>:
Sinon, je propose ceci :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et
zsh me font une erreur (bad substitution / closing brace expected), et avec
bash ça donne l'identité.
calimero@heimdall:~$ cible=TotoLeZero
calimero@heimdall:~$ echo ${cible::3}
Tot
calimero@heimdall:~$ bash --version
GNU bash, version 3.00.16(1)-release (i386-pc-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
calimero@heimdall:~$
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et zsh me font une erreur (bad substitution / closing brace expected), et avec bash ça donne l'identité.
:~$ cible=TotoLeZero :~$ echo ${cible::3} Tot :~$ bash --version GNU bash, version 3.00.16(1)-release (i386-pc-linux-gnu) Copyright (C) 2004 Free Software Foundation, Inc. :~$
Les joies de la portabilité ;-)
-- @+ Calimero
Sébastien Monbrun aka TiChou
Dans le message <news:dqmcq6$2s9u$, *Nicolas George* tapota sur f.c.o.l.configuration :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ?
Avec le shell demandé par l'OP. Testé avec la version 2.04, 2.05 et 3.00.
avec bash ça donne l'identité.
Qu'entends-tu par « identité » ?
Dans man bash j'ai :
${parameter:offset} ${parameter:offset:length} Substring Expansion. Expands to up to length characters of parameter starting at the character specified by offset. If length is omitted, expands to the substring of parameter starting at the character specified by offset. length and offset are arithmetic expressions (see ARITHMETIC EVALUATION below). length must evaluate to a number greater than or equal to zero. If offset evalu- ates to a number less than zero, the value is used as an offset from the end of the value of parameter. If parameter is @, the result is length positional parameters beginning at offset. If parameter is an array name indexed by @ or *, the result is the length members of the array beginning with ${parame- ter[offset]}. Substring indexing is zero-based unless the positional parame- ters are used, in which case the index- ing starts at 1.
-- Sébastien Monbrun aka TiChou
Dans le message <news:dqmcq6$2s9u$1@biggoron.nerim.net>,
*Nicolas George* tapota sur f.c.o.l.configuration :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ?
Avec le shell demandé par l'OP. Testé avec la version 2.04, 2.05 et 3.00.
avec bash ça donne l'identité.
Qu'entends-tu par « identité » ?
Dans man bash j'ai :
${parameter:offset}
${parameter:offset:length}
Substring Expansion. Expands to up to
length characters of parameter starting
at the character specified by offset.
If length is omitted, expands to the
substring of parameter starting at the
character specified by offset. length
and offset are arithmetic expressions
(see ARITHMETIC EVALUATION below).
length must evaluate to a number greater
than or equal to zero. If offset evalu-
ates to a number less than zero, the
value is used as an offset from the end
of the value of parameter. If parameter
is @, the result is length positional
parameters beginning at offset. If
parameter is an array name indexed by @
or *, the result is the length members
of the array beginning with ${parame-
ter[offset]}. Substring indexing is
zero-based unless the positional parame-
ters are used, in which case the index-
ing starts at 1.
Dans le message <news:dqmcq6$2s9u$, *Nicolas George* tapota sur f.c.o.l.configuration :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ?
Avec le shell demandé par l'OP. Testé avec la version 2.04, 2.05 et 3.00.
avec bash ça donne l'identité.
Qu'entends-tu par « identité » ?
Dans man bash j'ai :
${parameter:offset} ${parameter:offset:length} Substring Expansion. Expands to up to length characters of parameter starting at the character specified by offset. If length is omitted, expands to the substring of parameter starting at the character specified by offset. length and offset are arithmetic expressions (see ARITHMETIC EVALUATION below). length must evaluate to a number greater than or equal to zero. If offset evalu- ates to a number less than zero, the value is used as an offset from the end of the value of parameter. If parameter is @, the result is length positional parameters beginning at offset. If parameter is an array name indexed by @ or *, the result is the length members of the array beginning with ${parame- ter[offset]}. Substring indexing is zero-based unless the positional parame- ters are used, in which case the index- ing starts at 1.
-- Sébastien Monbrun aka TiChou
George Abitbol
Sébastien Monbrun aka TiChou wrote in message :
Sinon, je propose ceci :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et zsh me font une erreur (bad substitution / closing brace expected), et avec bash ça donne l'identité.
Avec zsh, on peut faire :
$cible[1,3]
et echo $cible | cut -c 1-3 ca devrait marcher partout non ?
Sébastien Monbrun aka TiChou wrote in message
<bzium.20060118220123@florizarre.tichou.org>:
Sinon, je propose ceci :
$ echo ${cible::3}
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et
zsh me font une erreur (bad substitution / closing brace expected), et avec
bash ça donne l'identité.
Avec zsh, on peut faire :
$cible[1,3]
et echo $cible | cut -c 1-3 ca devrait marcher partout non ?
C'est censé marcher avec quoi, ça ? Ce n'est pas dans Single Unix, dash et zsh me font une erreur (bad substitution / closing brace expected), et avec bash ça donne l'identité.
Avec zsh, on peut faire :
$cible[1,3]
et echo $cible | cut -c 1-3 ca devrait marcher partout non ?
Olivier V
Merci à tous.
Encore une petite question du même style :
comment obtenir toutes les lettres SAUF la dernière d'un nom de fichier ?
Merci.
Olivier V
Merci à tous.
Encore une petite question du même style :
comment obtenir toutes les lettres SAUF la dernière d'un nom de fichier ?
comment obtenir toutes les lettres SAUF la dernière d'un nom de fichier ?
${ploum%?}
Olivier V
Olivier V :
comment obtenir toutes les lettres SAUF la dernière d'un nom de fichier ?
${ploum%?}
Radical ... ! Et pour ma culture personnelle, comment aurait fait pour supprimer les deux dernières lettres ? J'ai essayé ${${ploum%?}%?}, mais sans succès.
J'ai encore une ultime (j'espère) question qui s'éloigne un peu ... :
J'utilise la commande 'ttf2pt1' qui me renvoie en console des lignes (extrait ci-dessous). Comment récupérer l'information qui suit 'FontName' (ComicSansMS sur cet exemple) pour pouvoir la donner plus tard en argument ?
Mille merci.
Olivier V
Sortie de 'ttf2pt1' :
[...] Found Unicode Encoding Guessed italic angle: 0.000000 FontName ComicSansMS No Kerning data Finished - font files created
Olivier V :
comment obtenir toutes les lettres SAUF la dernière d'un nom de fichier ?
${ploum%?}
Radical ... !
Et pour ma culture personnelle, comment aurait fait pour supprimer les deux
dernières lettres ?
J'ai essayé ${${ploum%?}%?}, mais sans succès.
J'ai encore une ultime (j'espère) question qui s'éloigne un peu ... :
J'utilise la commande 'ttf2pt1' qui me renvoie en console des lignes
(extrait ci-dessous).
Comment récupérer l'information qui suit 'FontName' (ComicSansMS sur cet
exemple) pour pouvoir la donner plus tard en argument ?
Mille merci.
Olivier V
Sortie de 'ttf2pt1' :
[...]
Found Unicode Encoding
Guessed italic angle: 0.000000
FontName ComicSansMS
No Kerning data
Finished - font files created
comment obtenir toutes les lettres SAUF la dernière d'un nom de fichier ?
${ploum%?}
Radical ... ! Et pour ma culture personnelle, comment aurait fait pour supprimer les deux dernières lettres ? J'ai essayé ${${ploum%?}%?}, mais sans succès.
J'ai encore une ultime (j'espère) question qui s'éloigne un peu ... :
J'utilise la commande 'ttf2pt1' qui me renvoie en console des lignes (extrait ci-dessous). Comment récupérer l'information qui suit 'FontName' (ComicSansMS sur cet exemple) pour pouvoir la donner plus tard en argument ?
Mille merci.
Olivier V
Sortie de 'ttf2pt1' :
[...] Found Unicode Encoding Guessed italic angle: 0.000000 FontName ComicSansMS No Kerning data Finished - font files created