Un cut et un tableau

Fermé
topi - 15 juil. 2009 à 13:15
 topi - 15 juil. 2009 à 15:12
Bonjour,

Je suis en train de faire un petit programme en shell. J'extrais de mon fichier de configuration la ligne qui m'interresse à savoir :
developpers = clement, arthur, julien


J'aimerai parvenir à extraire les identifiants et les placer dans un tableau.
J'ai essayé ceci :

echo "$line"|cut -d"=" -f 2- |cut -d"," -f 1-1


Avec ça je récupère " clement" : il n'est pas dans un tableau, et en plus il y a un espace devant le nom ce qui causera un probème pour le traitement.

Pourriez-vous m'aider?

Merci bien
A voir également:

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
15 juil. 2009 à 14:13
Salut,
[tmpfs]$ var="developpers = clement, arthur, julien"

[tmpfs]$ echo ${var}
developpers = clement, arthur, julien

[tmpfs]$ echo ${var// /}
developpers=clement,arthur,julien

[tmpfs]$ new_var=${var// /}

[tmpfs]$ echo ${new_var}
developpers=clement,arthur,julien

[tmpfs]$ nom="${new_var#*=}"

[tmpfs]$ echo ${nom}
clement,arthur,julien

[tmpfs]$ echo ${nom//,/ }
clement arthur julien

[tmpfs]$ TABLEAU=( ${nom//,/ } )

[tmpfs]$ echo ${#TABLEAU[*]}
3

[tmpfs]$ echo ${TABLEAU[0]}
clement

[tmpfs]$ echo ${TABLEAU[1]}
arthur

[tmpfs]$ echo ${TABLEAU[2]}
julien

[tmpfs]$ 
;-))
0
Merci! Vraiment!

Je ne pensais pas que l'on pouvait ne pas passer par cut!
Néanmoins j'aurai une petite question encore (j'aime bien comprendre ce que je fais):

Comment marche cette ligne ?
echo ${var// /}

Est-ce une syntaxe raccourcis pour sed?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
15 juil. 2009 à 15:04
Non ça fait parti de la syntaxe du shell bash :
man bash -P 'less -p "^   Remplacement des paramètres"'

       ${paramètre#mot}
       ${paramètre##mot}
              Le  mot est développé pour fournir un motif, comme dans l'expan-
              sion des noms de fichiers. Si le motif correspond au début de la
              valeur  du  paramètre, alors le développement prend la valeur du
              paramètre après suppression du  plus  petit  motif  commun  (cas
              ``#''), ou du plus long motif (cas ``##'').  Si le paramètre est
              @ ou *, l'opération de suppression  de  motif  est  appliquée  à
              chaque paramètre positionnel successivement, et le développement
              donne la liste finale.  Si le paramètre est une variable tableau
              indexée  par  @  ou  *,  l'opération de suppression de motif est
              appliquée à chaque  membre  du  tableau  successivement,  et  le
              développement donne la liste finale.

       ${paramètre%mot}
       ${paramètre%%mot}
              est  développé pour fournir un motif, comme dans l'expansion des
              noms de fichiers. Si le motif correspond à une portion finale de
              la  valeur  du paramètre, alors le développement prend la valeur
              du paramètre après suppression du plus petit motif  commun  (cas
              ``%''), ou du plus long motif (cas ``%%'').  Si le paramètre est
              @ ou *, l'opération de suppression  de  motif  est  appliquée  à
              chaque paramètre positionnel successivement, et le développement
              donne la liste finale.  Si le paramètre est une variable tableau
              indexée  par  @  ou  *,  l'opération de suppression de motif est
              appliquée à chaque  membre  du  tableau  successivement,  et  le
              développement donne la liste finale.

       ${paramètre/motif/chaîne}
       ${paramètre//motif/chaîne}
              Le  motif  est  développé  comme  dans le traitement des noms de
              fichiers.  Le paramètre est développé et la plus longue  portion
              correspondant  au  motif  est remplacée par la chaîneg.  Dans la
              première forme, seule la première correspondance est  remplacée,
              dans  la seconde toutes les portions correspondant au motif sont
              remplacées par la chaîne.  Si le motif commence par #,  il  doit
              correspondre  au début de la valeur développée du paramètre.  Si
              le motif commence par %,  il  doit  correspondre  à  la  fin  du
              développement  du  paramètre.   Si la chaîne est nulle, les por-
              tions correspondant au motif sont supprimées et le  /  après  le
              motif  peut  être omis.  Si le paramètre est @ ou *, l'opération
              de substitution est appliquée à chacun des paramètres  position-
              nels  successivement, et le résultat est la liste finale.  Si le
              paramètre  est  une  variable  tableau  indexée  par  @  ou   *,
              l'opération  de  substitution  s'applique  à  chaque  membre  du
              tableau successivement, et le résultat est la liste finale.
;-))
0
D'accord, je vais pouvoir me concentrer un peu là dessus ça a l'air important à connaître!

Merci pour tout

Topi
0