Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/02/2018, à 10: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, à 11: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, à 11: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, à 11:31

DonutMan75

Re : script pour récupérer les informations dans une variable

Bonjour,
il y a une différence entre :

Linux-Ubuntu064 a écrit :

j'ai des id dans un fichier texte et ces id je voudrais les récupérer avec une variable.

et :

Linux-Ubuntu064 a écrit :

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, à 11: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, à 11: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, à 11: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, à 12: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, à 12: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, à 12:39

pingouinux

Re : script pour récupérer les informations dans une variable

Linux-Ubuntu064 #9 a écrit :

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, à 12: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 smile

Hors ligne

#12 Le 07/02/2018, à 16: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.

Hors ligne

#13 Le 07/02/2018, à 16: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, à 17:23)

Hors ligne