Commande sed -i -e

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. Contributeur
    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
    1. 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. Contributeur
        Re-

        Rien pigé à ce que tu veux ;-(

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