Commande sed -i -e

Fermé
dolidole Messages postés 13 Date d'inscription vendredi 21 juin 2013 Statut Membre Dernière intervention 12 septembre 2013 - 28 juin 2013 à 13:03
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 29 juin 2013 à 12:14
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
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
28 juin 2013 à 16:14
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
dolidole Messages postés 13 Date d'inscription vendredi 21 juin 2013 Statut Membre Dernière intervention 12 septembre 2013 3
28 juin 2013 à 17:03
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
29 juin 2013 à 12:14
Re-

Rien pigé à ce que tu veux ;-(

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