#1 Le 07/02/2018, à 09:49
- Linux-Ubuntu064
script pour récupérer les informations dans une variable
Bonjour,
J'ai un fichier texte avec des ID.
Je dois écrire un script doit aller chercher ce fichier texte et il doit remplacer les ID par une variable
Je n'ai aucune idée comment faire ce script ? Avez-vous une idée ?
Merci.
Cordialement
Hors ligne
#2 Le 07/02/2018, à 10:02
- pingouinux
Re : script pour récupérer les informations dans une variable
Bonjour,
Ta question n'est pas très précise, il faudrait que tu donnes un petit exemple.
Hors ligne
#3 Le 07/02/2018, à 10:18
- Linux-Ubuntu064
Re : script pour récupérer les informations dans une variable
Bonjour pingouinux,
Merci pour ta réponse rapide.
En fait j'ai des id dans un fichier texte et ces id je voudrais les récupérer avec une variable.
Par exemple: webTVFrance: 5UI57REVU.
Je voudrais remplacer 5UI57REVU par une variable (Monid par exemple)
Cordialement,
Hors ligne
#4 Le 07/02/2018, à 10:31
- DonutMan75
Re : script pour récupérer les informations dans une variable
Bonjour,
il y a une différence entre :
j'ai des id dans un fichier texte et ces id je voudrais les récupérer avec une variable.
et :
Je voudrais remplacer 5UI57REVU par une variable (Monid par exemple)
Dans le premier cas, on cherche dans le fichier l'ID (dans ton exemple 5UI57REVU) associé à un champ (ici webTVFrance) et on le stocke dans une variable (Monid dans ton exemple). Donc le fichier n'est pas modifié.
Dans le second cas, on se fiche de savoir quel est l'ID associé à webTVFrance et on veut juste l'écraser par la valeur de la variable Monid. Donc le fichier SERA modifié.
Pour récupérer l'ID associé à un champ donné (donc cas n°1) je propose un sed :
Monid=$(sed -re 's/webTVFrance: (.*)/\1/' < ./test.dat)
$ cat test.dat
webTVFrance: 5UI57REVU
Mais il y a peut-être plus simple... Un awk pourrait fonctionner également.
Pour remplacer la chaîne, y'a juste à modifier un peu le sed (et à rajouter l'option -i).
A bientôt,
Donut
Hors ligne
#5 Le 07/02/2018, à 10:36
- pingouinux
Re : script pour récupérer les informations dans une variable
Tu peux utiliser sed (voir le man).
Quelque chose du genre
sed -r "s/(webTVFrance: )5UI57REVU/\1Monid/" fichier_texte
et si tu veux remplacer Monid par son contenu
sed -r "s/(webTVFrance: )5UI57REVU/\1$Monid/" fichier_texte
Hors ligne
#6 Le 07/02/2018, à 10:38
- Linux-Ubuntu064
Re : script pour récupérer les informations dans une variable
Bonjour Donut,
Merci pour ta réponse.
Oui ça serait plutôt le second cas on veut écraser l'id et le remplacer par la variable Monid
Cordialement,
Hors ligne
#7 Le 07/02/2018, à 10:50
- Linux-Ubuntu064
Re : script pour récupérer les informations dans une variable
Pour être plus précis voici le contenu de mon fichier texte :
webtv-islande:5ZAQM3W5JGJY
webtv-portugal:53NEK4JE2UK2
webtv-allemagne:4HC5DCMNW4CH
Je voudrais avoir un script qui puisse remplacer l'id par la variable $Monid, ça serait un truc du genre :
webtv-islande:$Monid
webtv-portugal:$Monid
webtv-allemagne:$Monid
Tout ça dans un autre fichier.
Cordialement,
Hors ligne
#8 Le 07/02/2018, à 11:01
- pingouinux
Re : script pour récupérer les informations dans une variable
sed -r 's/(webtv-[^:]+:).*/\1$Monid/' fichier_texte >fichier_modifie
qui donne ce résultat sur ton exemple
webtv-islande:$Monid
webtv-portugal:$Monid
webtv-allemagne:$Monid
Hors ligne
#9 Le 07/02/2018, à 11:27
- Linux-Ubuntu064
Re : script pour récupérer les informations dans une variable
Non, désolé ce n'est pas vraiment ça que je veux faire.
En réalité je veux récupérer les différents id :
webtv-islande:5ZAQM3W5JGJY
webtv-portugal:53NEK4JE2UK2
webtv-allemagne:4HC5DCMNW4CH
Puis une fois que cela est fait, je veux afficher la liste des différents possible en demandant le choix à l'utilisateur.
Et ensuite, je veux produire l'id choisi par l'utilisateur dans le fichier RiseDisplayNetworkII.ini appartenant à RiseVision.
J'espère être compréhensible
Cordialement,
Hors ligne
#10 Le 07/02/2018, à 11:39
- pingouinux
Re : script pour récupérer les informations dans une variable
J'espère être compréhensible
Pas pour moi, en tout cas. Tes demandes semblent évoluer au fur et à mesure de tes messages.
Hors ligne
#11 Le 07/02/2018, à 11:50
- Linux-Ubuntu064
Re : script pour récupérer les informations dans une variable
Oui désolé, je ne suis pas très clair,
Je vais essayer d'être plus clair.
J'ai un fichier texte avec tous les id.
Voici ce fichier texte :
webtv-islande:5ZAQM3W5JGJY
webtv-portugal:53NEK4JE2UK2
webtv-allemagne:4HC5DCMNW4CH
Je dois écrire un script qui permettra d'afficher les différents ID disponibles et de demander à l'utilisateur l'iD qu'il a choisi (par exemple il choisi webtv-islande).
Ensuite je dois produire l'id choisi par l'utilisateur dans le fichier RiseDisplaynetworkII.ini de Risevision (Par exemple, pour webtv-islande ça sera 5ZAQM3W5JGJY)
J'espère être plus clair cette fois-ci
Hors ligne
#12 Le 07/02/2018, à 15:37
- Watael
Re : script pour récupérer les informations dans une variable
J'espère être plus clair cette fois-ci
à peine
- [à partir d']un fichier texte avec tous les id.
- afficher les différents ID disponibles
- demander à l'utilisateur l'iD qu'il a choisi
- produire l'id choisi par l'utilisateur dans [un autre] fichier
voilà, à partir de ce que tu as écrit, il faut présenter les choses.
mais ce n'est pas suffisant; il faut être plus précis.
PS: "id", ce n'est pas "iD", ni "ID".
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#13 Le 07/02/2018, à 15:54
- Linux-Ubuntu064
Re : script pour récupérer les informations dans une variable
Merci pour la réponse,
Entre temps j'ai développé un script bash, le voici :
#!/bin/bash
# Afficher la liste des displays possibles
cat display_id.txt
# L'utilisateur choisit son pays
while $webtv grep -E | cut -d: -f2 display_id.txt
do
echo "Choisissez votre pays"
echo "Choix 1 : Allemagne"
echo "Choix 2 : Finlande"
echo "Choix 3 : Portugal"
read $webtv
done
# Produire la réponse dans le fichier RiseDisplaysRII.ini appartenant à Risevision
Voici le résultat lorsque j'exécute le programme :
./test_script_id.sh
webtv-allemagne:4HC5DCMNW4CH
webtv-islande:5ZAQM3W5JGJY
webtv-portugal:53NEK4JE2UK2
4HC5DCMNW4CH
5ZAQM3W5JGJY
53NEK4JE2UK2
Utilisation : grep [OPTION]... MOTIF [FICHIER]...
Exécutez « grep --help » pour obtenir des renseignements complémentaires.
Choisissez votre pays
Choix 1 : Allemagne
Choix 2 : Finlande
Choix 3 : Portugal
C'est bien, mais je voudrais que l'utilisateur puisse choisir son choix (1,2 ou 3) or quand j'indique le choix 1 par exemple, le résultat m'indique les 3 id en même temps alors que je veux 1 ID par choix
Cordialement,
Modération : merci d'utiliser les balises code (explications ici).
Dernière modification par cqfd93 (Le 07/02/2018, à 16:23)
Hors ligne