Un cut et un tableau
topi
-
topi -
topi -
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 :
J'aimerai parvenir à extraire les identifiants et les placer dans un tableau.
J'ai essayé ceci :
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
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:
- Un cut et un tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Cap cut avis - Télécharger - Montage & Édition
4 réponses
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]$ ;-))
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 ?
Est-ce une syntaxe raccourcis pour sed?
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?
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.
;-))