IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Recherche partie gauche et droite du texte


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 18
    Par défaut Recherche partie gauche et droite du texte
    bonjour,
    j'essaie de faire 1 recherche dans un fichier plat qui contient 2 infos, une adresse ip suivie d'une chaine qui doit etre exploitée. En gros, ca doit me mettre a jour une variable dans un système domotique.

    J'ai commencé un draft qui fonctionne sur chaque ligne (ping) que j'essaie d'agrémenter, mais mes souvenirs bash sont lointains.
    je vous sollicite d'abord sur la partie lecture et exploitation de la ligne
    hostmame=left(hoslist)
    cde=right(hoslist)

    je sais bien que je dois partir sur awk, grep ou autre, mais impossible d'avoir qqe chose de probant.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    #!/bin/bash
    #Description du fichier en entrée, à définir :
    #    192.168.1.1|STATUS_OPENWRT
    #    192.168.1.110|STATUS_PCHC
    #ou
    #    192.168.1.1 STATUS_OPENWRT
    #    192.168.1.110 STATUS_PCHC
     
    while read hostlist
    do
    	hostmame=left(hoslist)
    	cde=right(hoslist)
     
    	monping="ping -c 1 -t 1 "$hostname" > /dev/null 2>&1"
     
    	#group_read et goup_write sont des bash qui permettent de lire/ecrire sur le bus domotique
    	val_encours==group_read(cde)
    	if(monping==1 && val_encours=="off")  then
    		goup_write (cde,"on")
    	else
    		goup_write (cde,"on")
     
    	#echo "Ping Status of $hostname : Success" ||
    	#echo "Ping Status of $hostname : Failed"
     
    done < host.txt
    Merci d'avance.
    Arnaud

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Si tu optes pour l'espace comme séparateur dans le fichier à traiter, ton programme se trouve grandement simplifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while read hostname cde
    do
    	monping=...
    Edit : Il y a quelques erreurs dans la suite du script, si c'est bien du bash :
    • L'affectation se fait avec =, pas ==.
    • Un test est encadré de crochets, pas de parenthèses.
    • Il faut un saut de ligne ou un point-virgule avant then.
    • Un test se termine avec fi.

    Je n'ai peut être pas tout vu.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Bonjour,

    La commande read peut récupérer les 2 champs et les mettre dans 2 variable distinct:
    while IFS="|" read hostname cde

Discussions similaires

  1. Créer Layout pour les partie gauche et droite
    Par nadjibnet dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 29/04/2013, 09h54
  2. Réponses: 10
    Dernier message: 23/12/2010, 10h27
  3. texte alignée gauche et droite
    Par armin dans le forum Windows Forms
    Réponses: 7
    Dernier message: 11/06/2009, 11h19
  4. Sur la même ligne mettre du texte à gauche et à droite
    Par Oberown dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 20/06/2007, 15h50
  5. Aligner du texte à gauche et à droite sur une même ligne ?
    Par pontus21 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/04/2005, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo