Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane Chazelas
On 10 Jul 2006 01:13:54 -0700, wrote: [...]
j'extrait des caracteres dans une chaine a l'aide de l'operateur echo par exemple: echo ${variable:5:2}
echo n'extrait pas, c'est une commande qui sert a afficher ses arguments apres avoir expander les "n" en newline, "t" en tab... (sauf que pour bash, ca depend si le mode Unix a ete active ou pas).
${variable:offset:length} est un operateur non-standard de ksh93 que bash a copié. Mal concu comme la plupart de ce qui vient de ksh car ca se chevauche avec l'operateur ${var:-default}.
Mais maintenant, je souhaite extraire extraire un caractere sur 4 dans une chaine de caractere.
exemple: chaine "abcdefghijkl" je ne veux garder que "dhl"
Y'a t'il un moyen en une commande, ou faut il passer par un script qui boucle? [...]
awk ' BEGIN { string = ARGV[1] len = length(string) for (i = 1; i <= len; i += 4) printf "%s", substr(string, i, 1) printf "n" exit }' "$variable"
Ou, si $variable ne contient pas de saut de ligne (sinon, ca le fera pour chaque ligne):
printf '%sn' "$variable" | sed 's/(.).{1,3}/1/g'
-- Stephane
On 10 Jul 2006 01:13:54 -0700, octane@alinto.com wrote:
[...]
j'extrait des caracteres dans une chaine a l'aide de l'operateur echo
par exemple:
echo ${variable:5:2}
echo n'extrait pas, c'est une commande qui sert a afficher ses
arguments apres avoir expander les "n" en newline, "t" en
tab... (sauf que pour bash, ca depend si le mode Unix a ete
active ou pas).
${variable:offset:length} est un operateur non-standard de ksh93
que bash a copié. Mal concu comme la plupart de ce qui vient de
ksh car ca se chevauche avec l'operateur ${var:-default}.
Mais maintenant, je souhaite extraire extraire un caractere sur 4
dans une chaine de caractere.
exemple: chaine "abcdefghijkl"
je ne veux garder que "dhl"
Y'a t'il un moyen en une commande, ou faut il passer par un script
qui boucle?
[...]
awk '
BEGIN {
string = ARGV[1]
len = length(string)
for (i = 1; i <= len; i += 4)
printf "%s", substr(string, i, 1)
printf "n"
exit
}' "$variable"
Ou, si $variable ne contient pas de saut de ligne (sinon, ca le
fera pour chaque ligne):
j'extrait des caracteres dans une chaine a l'aide de l'operateur echo par exemple: echo ${variable:5:2}
echo n'extrait pas, c'est une commande qui sert a afficher ses arguments apres avoir expander les "n" en newline, "t" en tab... (sauf que pour bash, ca depend si le mode Unix a ete active ou pas).
${variable:offset:length} est un operateur non-standard de ksh93 que bash a copié. Mal concu comme la plupart de ce qui vient de ksh car ca se chevauche avec l'operateur ${var:-default}.
Mais maintenant, je souhaite extraire extraire un caractere sur 4 dans une chaine de caractere.
exemple: chaine "abcdefghijkl" je ne veux garder que "dhl"
Y'a t'il un moyen en une commande, ou faut il passer par un script qui boucle? [...]
awk ' BEGIN { string = ARGV[1] len = length(string) for (i = 1; i <= len; i += 4) printf "%s", substr(string, i, 1) printf "n" exit }' "$variable"
Ou, si $variable ne contient pas de saut de ligne (sinon, ca le fera pour chaque ligne):