Bonjour,
Je souhaiterais avoir de l'aide sur l'édition d'un script ??
Dès que l'on branche un lecteur de CV sur Mac, il génère un fichier cu.usbmodem XXX, sachant que XXX est le numéro du Port.
Je souhaiterais donc savoir comment récupérer les 3 numéros du port situé à la fin du fichier, et les envoyer dans une chaine de caractère >> >> >> ( COM1=cu.usbmodem XXX ) située dans un fichier "**.ini" ?
Je voudrais savoir si quelqu'un peut m'aider ou m'indiquer comment faire pour écrire ce script qui permettrait de faire cet manipulation…. cela m'aiderais beaucoup dans mon travail…
Je pense qu'il faut utiliser la commande "grep | Sed" mais je ne connais pas la syntaxe exacte..
Merci d'avance..
Cordialement,
Julien.
# Je n'ai peut-être pas compris la question
Posté par yohann (site web personnel) . Évalué à 0. Dernière modification le 22 octobre 2013 à 17:01.
je ne sais pas ce qu'est un lecteur de CV ni où est générer le fichier
mais la commande devrais ressembler à
[^] # Re: Je n'ai peut-être pas compris la question
Posté par Julien72 . Évalué à 1. Dernière modification le 22 octobre 2013 à 18:02.
CV : Lecteur de Carte Vitale
Je récupère le N° du lecteur "xxx" dans la variable REP en demandant de le taper au clavier…
donc $REP="xxx" >> Numéro du lecteur récuperer : OK
Après il faut que je remplace la ligne "COM1=/dev/cu.usbmodem" par "COM1=/dev/cu.usbmodemXXX" donc par COM1=/dev/cu.usbmodem'$REP' dans le fichier "io_comm.ini"
j'ai un script qui ressemble a cà :
Merci de m'éclairer sur ce script,
Bonne fin de journée,
Cordialement,
Julien
[^] # Re: Je n'ai peut-être pas compris la question
Posté par NeoX . Évalué à 3.
en etant dans le dossier qui contient de fichier io_comm.ini
et en utilisant le # comme separateur dans le sed pour simplifier la gestion des / dans le chemin
ca doit pouvoir se simplifier en faisant reentrer le motif trouvé à gauche du sed dans le motif de remplacement.
[^] # Re: Je n'ai peut-être pas compris la question
Posté par Julien72 . Évalué à 0.
Bonjour,
Merci pour l'aide NeoX..
J'ai essayé et ca ne fonctionne pas.. pas de message d'erreur, mais pas de "411" dans
la chaine de caractère COM1=/dev/cu.usbmodem"xxx"… pourtant je suis bien dans le répertoire ou se trouve le fichier "io_comm.ini"…
Je suis ouvert a toutes réponses, et merci d'avance…
[^] # Re: Je n'ai peut-être pas compris la question
Posté par NeoX . Évalué à 3.
attention, ne connaissant pas ton fichier io_comm.ini
j'ai fait un modele de script supposant que le fichier contenait la ligne
COM1=/dev/cu.usbmodem
là ou dans ton exemple tu ne cherches que
COM1
la difference vient peut-etre de là
[^] # Re: Je n'ai peut-être pas compris la question
Posté par Julien72 . Évalué à -1.
Effectivement le fichier Io_comm.ini contient bien la ligne
"COM1=/dev/cu.usbmodem"
Mais le problème c'et que la variable ne va pas se mettre après "cu.usbmodem"
Merci…
[^] # Re: Je n'ai peut-être pas compris la question
Posté par Julien72 . Évalué à 0.
Du Coup désolé j'avais inversé les ' et les " au final ca fonctionne…. merci beaucoup…
Bonne journée à toi…
[^] # Re: Je n'ai peut-être pas compris la question
Posté par Julien72 . Évalué à 1.
Re-Bonjour…
Par contre ca fonctionne mais si je lance la commande 2 fois; il me l'inscrit 2 fois ( ce qui est normal.. )
donc petite question : Comment faire pour qu'il ne l'indique qu'une seul fois, et le cas ou la commande est lancée une deuxième, qu'il indique que le fichier est déja configurer et surtout qu'il ne rajoute pas le 2 ème "411" dèrrière COM1=cu.usbmodem411 ?
merci d'avance pour l'aide…
Bonne aprèm…
[^] # Re: Je n'ai peut-être pas compris la question
Posté par NeoX . Évalué à 4.
tester si le fichier contient deja cu.usbmodem411 et quitter avant de faire la modif par exemple.
[^] # Re: Je n'ai peut-être pas compris la question
Posté par Julien72 . Évalué à 1.
Bonjour,
Merci pour ta réponse… j'ai pensé à autre chose .. :
Serait-il possible à chaque fois de supprimer le fichier Io_comm.ini et de la remplacer par celui qu'on créer quand on lui intègre la variable.. ?
REP="411"
Est il possible de créer une ligne de commande pour faire cela ?
Merci d'avance NeoX.. tu m'aide beaucoup…
[^] # Re: Je n'ai peut-être pas compris la question
Posté par NeoX . Évalué à 3.
actuellement on remplace la ligne COM1=/dev/cu.usbmodem par COM1=/dev/cu.usbmodemXXX
comme l'enoncé en le precise pas, je pensais que le fichier io_comm.ini contenait d'autres lignes.
si tu veux remplacer/ecraser le fichier io_comm.ini, il suffit alors de remplacer nos grep/exit/sed par
[^] # Re: Je n'ai peut-être pas compris la question
Posté par Julien72 . Évalué à 0.
D'accord j'ai pigé… merci pour l'info et effectivement ca fonctionne !!!
Ok pour ce pblm.. par contre pour faire plus simple :
est-il possible de récupérer le valeur de la variable REP directement à partir du fichier d'origine
pour l'instant ca ressemble à ca :
Est-il possible de récuperer la Variable REP directement à partir de la réponse du Find afin d'éviter de la taper manuellement ???
Merci d'avance…
[^] # Re: Je n'ai peut-être pas compris la question
Posté par ecid . Évalué à 0.
Bon, ça gère pas le cas où le modem n'est pas déclaré dans /dev
auquel cas io_comm.ini ne contient que COM1=
[^] # Re: Je n'ai peut-être pas compris la question
Posté par François GUÉRIN (Mastodon) . Évalué à 2. Dernière modification le 23 octobre 2013 à 22:37.
Salut,
Si tu n'as qu'un objet cu.usbmodem dans ton /dev, pas de problême, la boucle ne tournera qu'une fois. Si il y en a plusieurs, ru devras demander à ton utilisateur de choisir…
Voici un exemple de code pour extraire le numéro (pas testé, y a peut être à vérifier le sed).
N'oublie pas de repasser le param 'debug' à 0 avant de passer en prod !
Bon code !
[^] # Re: Je n'ai peut-être pas compris la question
Posté par Julien72 . Évalué à 0.
Bonjour Francois,
Merci de ta réponse, je n'ai qu'un seul objet donc ca passe… merci..
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.