Commande sed -i -e

dolidole Messages postés 18 Statut Membre -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je veux exécuté un script en Shell pour remplacer des points des adresses IP par des tirés comme suites :
"192.168.1.1 -------> 192-168-1-1 " et en suite l'affecter un un dossier j'ai réussi a mettre la commande >> sed -i -e "s/\.\.*/-/" nom_de_fichier <<ça me sépare l'adresses pas des tirés mnt mon souci c'est que je dois les stockées dans un autres fichier !Si y'a une personne qui peux m'aider Merci d'avance

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    sed -i -e "s/\.\.*/-/" nom_de_fichier <<ça me sépare l'adresses pas des tirés
    Ça ça m'étonnerait ;-((
    Ça remplace juste le 1er point, et la syntaxe n'est pas la bonne.
    La preuve :
    $ echo "192.168.1.1" | sed 's/\.\.*/-/'
    192-168.1.1

    Essaie plutôt comme ça :
    $ echo "192.168.1.1" | sed 's/\./-/g'
    192-168-1-1

    mnt mon souci c'est que je dois les stockées dans un autres fichier
    Il suffit de rediriger vers un nouveau fichier (l'option "-i" est inutile) :
    sed 's/\./-/g' fichier > nouveau_fichier

    0
  2. dolidole Messages postés 18 Statut Membre 3
     
    Merci Zipe ! ça marche ! j'ai un autre souci je suis débutant en Shell ! en faite je veux réaliser un script en Shell qui me scan mon réseau local tout en respectant quelques parametre mnt je veux insérer la valeur en IP avec - devant host_name sur la même ligne et encore une fois a la place display_name ! mon script de test si joint :

    #!/bin/bash
    #hosts="/srv/eyesofnetwork/nagios/etc/objects/hosts.cfg"
    hosts="hosts.cfg"
    J="J.txt"
    # rm -f testtest
    echo > $hosts
    #nmap -sP 192.168.1.0/24 | awk '{print $2}' | grep 192 > discov-hosts
    echo "192.168.1.112" > discovhosts
    for i in $(cat discovhosts);
    do
    sed "s/\./-/g" discovhosts > J
    echo "define host {" >> $hosts;
    echo " host_name $J
    check_command check-host-alive!$i
    max_check_attempts 2
    check_interval 4
    passive_checks_enabled 1
    check_period 24x7
    obsess_over_host 0
    check_freshness 0
    freshness_threshold 0
    active_checks_enabled 1
    notification_interval 0
    notification_period 24x7
    notifications_enabled 5
    failure_prediction_enabled 1
    action_url /module/capacity_for_nagios/index.php?ip=$HOSTNAME$
    icon_image windowsxp.png
    vrml_image windowsxp.png
    statusmap_image windowsxp.png
    alias WINDOWS 7
    display_name HOSTER-PC
    initial_state o" >> $hosts;
    echo " address $i" >> $hosts;
    echo " flap_detection_enabled 1
    process_perf_data 1
    retain_status_information 1
    retain_nonstatus_information 1
    notification_options d,u,r
    stalking_options d,u
    flap_detection_options o,d,u
    contact_groups admins
    hostgroups WINDOWS
    }" >> $hosts;
    echo -e "\n" >> $hosts;

    done

    >>> Je me retrouve perdu entre les lignes :S <<<<<<
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Re-

      Rien pigé à ce que tu veux ;-(

      Merci de mettre un exemple concret (avant => après) de ce que tu veux faire exactement.
      0