Script shell
Fermé
simo
-
19 mai 2008 à 13:45
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 26 mai 2008 à 13:44
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 26 mai 2008 à 13:44
A voir également:
- Script shell
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
9 réponses
dyllan
Messages postés
4694
Date d'inscription
mardi 9 janvier 2007
Statut
Contributeur sécurité
Dernière intervention
25 juin 2019
909
19 mai 2008 à 13:51
19 mai 2008 à 13:51
Bonjour,
essaye d'utiliser la commande "cut" :
cut - famille1 - X > tempo --> ici tu récupère les champ famille1 et X dans le dossier tempo
mais ce n'est pas complet tu veux maintenant les afficher. Essaye avec read sur des valeurs que tu définies, tu les rappelles.
essaye d'utiliser la commande "cut" :
cut - famille1 - X > tempo --> ici tu récupère les champ famille1 et X dans le dossier tempo
mais ce n'est pas complet tu veux maintenant les afficher. Essaye avec read sur des valeurs que tu définies, tu les rappelles.
je serais toi je mettrais le contenu du fichier dans une variable chaine de caractère et après je découperé la chaine de caractère:
par exemple un fichier texte qui contient 7 paramètre: (1/2/3/4/5/6/7)
#mettre la chaine de caractères dans une variable
variable=$(cat fichier.txt)
param1=${variable%/*} #6 fois pour récupérer que le param1 (boucle for)
param2=${variable%/*} #5 fois pour récupérer que le param1 et le 2
param2=${variable#*/} #1 fois pour avoir que le 2
param3=${variable%/*} #4 fois pour récupérer que le param1 et le 2
param3=${variable#*/} #2 fois pour avoir que le 2
.
.
.
par exemple un fichier texte qui contient 7 paramètre: (1/2/3/4/5/6/7)
#mettre la chaine de caractères dans une variable
variable=$(cat fichier.txt)
param1=${variable%/*} #6 fois pour récupérer que le param1 (boucle for)
param2=${variable%/*} #5 fois pour récupérer que le param1 et le 2
param2=${variable#*/} #1 fois pour avoir que le 2
param3=${variable%/*} #4 fois pour récupérer que le param1 et le 2
param3=${variable#*/} #2 fois pour avoir que le 2
.
.
.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
19 mai 2008 à 16:23
19 mai 2008 à 16:23
Salut,
Une piste :
Une piste :
[trash] $ echo $var nom1(famille1/X/famille2/Y/famille3/A|) [trash] $ echo $var | sed 's#.*(\(.*\)|)#\1#;s#/# #g' famille1 X famille2 Y famille3 A [trash] $ set $(echo $var | sed 's#.*(\(.*\)|)#\1#;s#/# #g') [trash] $ echo " Param1 = $1 Param2 = $2 Param3 = $3 Param4 = $4 Param5 = $5 Param6 = $6" Param1 = famille1 Param2 = X Param3 = famille2 Param4 = Y Param5 = famille3 Param6 = A [trash] $;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
En fait, j'ai un petit problème avec le sed :(. Les expressions ci-dessous peuvent contenir du texte aprés le "|"
nom1(famille1/X/famille2/Y/famille3/A|dfd)
nom2(famille1/X/famille2/Y/famille3/B|fffff)
nom1(famille1/X/famille5/Y/famille3/C|)
nom2(famille1/X/famille5/Y/famille3/D|)
Le résultat devient :
Param1 = nom1(famille1
Param2 = X
Param3 = famille2
Param4 = Y
Param5 = famille3
Param6 = A|dfd
Merci pr votre aide :)
En fait, j'ai un petit problème avec le sed :(. Les expressions ci-dessous peuvent contenir du texte aprés le "|"
nom1(famille1/X/famille2/Y/famille3/A|dfd)
nom2(famille1/X/famille2/Y/famille3/B|fffff)
nom1(famille1/X/famille5/Y/famille3/C|)
nom2(famille1/X/famille5/Y/famille3/D|)
Le résultat devient :
Param1 = nom1(famille1
Param2 = X
Param3 = famille2
Param4 = Y
Param5 = famille3
Param6 = A|dfd
Merci pr votre aide :)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
20 mai 2008 à 11:18
20 mai 2008 à 11:18
sed 's#.*(\(.*\)|.*)#\1#;s#/# #g';-))
Bonjour jipycy,
E fait, j'ai le script suivant élaboré avec ton aide :
-------------------------------------------------------------------------------------------------------
while true
do
clear
for ligne in `cat $fichier2`; do
set $(echo $ligne | sed 's#.*(\(.*\)|.*)#\1#;s#/# #g')
echo ""
echo " "$i". famille1: "$2 "| famille2: "$4 "| famille3: "$6
i=`expr $i + 1`
done
echo "
Votre choix : \c choix"
read choix
case "$choix" in
"0" )
exit;;
"variable" ) echo "choix 1"
;;
"variable" ) echo "choix 2"
;;
etc...
esac
done
-----------------------------------------------------------------------------------------------
sachant que le fichier2 contient :
nom1(famille1/X/famille2/Y/famille3/A|dfd)
nom2(famille1/X/famille2/Y/famille3/B|fffff)
nom1(famille1/X/famille5/Y/famille3/C|)
nom2(famille1/X/famille5/Y/famille3/D|)
etc...
Je voudrai que le script affiche l'ensemble des familles contenues dans le fichier dynamiquement avec un numéroà savoir le $i et que l'uilisateur ait la possiblité de faire son choix (variable) parmi ceux affiché dynamiquement.
Merci d'avance.
E fait, j'ai le script suivant élaboré avec ton aide :
-------------------------------------------------------------------------------------------------------
while true
do
clear
for ligne in `cat $fichier2`; do
set $(echo $ligne | sed 's#.*(\(.*\)|.*)#\1#;s#/# #g')
echo ""
echo " "$i". famille1: "$2 "| famille2: "$4 "| famille3: "$6
i=`expr $i + 1`
done
echo "
Votre choix : \c choix"
read choix
case "$choix" in
"0" )
exit;;
"variable" ) echo "choix 1"
;;
"variable" ) echo "choix 2"
;;
etc...
esac
done
-----------------------------------------------------------------------------------------------
sachant que le fichier2 contient :
nom1(famille1/X/famille2/Y/famille3/A|dfd)
nom2(famille1/X/famille2/Y/famille3/B|fffff)
nom1(famille1/X/famille5/Y/famille3/C|)
nom2(famille1/X/famille5/Y/famille3/D|)
etc...
Je voudrai que le script affiche l'ensemble des familles contenues dans le fichier dynamiquement avec un numéroà savoir le $i et que l'uilisateur ait la possiblité de faire son choix (variable) parmi ceux affiché dynamiquement.
Merci d'avance.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
26 mai 2008 à 10:49
26 mai 2008 à 10:49
Inspires-toi de cette excellente réponse de jisisv... ;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
26 mai 2008 à 13:44
26 mai 2008 à 13:44
$ set -A mon_tableau élément1 élément2 élément3 $ echo ${mon_tableau[1]} élément2 $ echo ${mon_tableau[0]} élément1 $ echo ${mon_tableau[*]} élément1 élément2 élément3 $ echo ${#mon_tableau[*]} 3 $;-))