Script commande SED

Fermé
cris69124 Messages postés 32 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 21 juin 2012 - 21 juin 2012 à 09:34
-----geo----- Messages postés 333 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 29 mai 2014 - 22 juin 2012 à 11:23
Bonjour, dans le cadre de mon BTS, je dois réaliser un script avec la commande sed:
Je dois d'abord insérer la configuration du named.conf.local de bind
zone "mondomaine.com"
type master;
file "etc/bind/mondomaine.com.zone";
forwarders{};
};

Et je dois ensuite réaliser une commande permettant de demander a l'utilisateur le nom du domaine puis que ce nouveau nom remplace "mondomaine.com"

Hors je ne suis pas très programmation et j'ai beau chercher je ne trouve pas..
Si vous avez une solution à me proposer je prends.

Merci

A voir également:

2 réponses

mamiemando Messages postés 33377 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 7 802
21 juin 2012 à 10:07
sed est principalement fait pour faire des substitutions, donc je doute que tu puisses t'en sortir (facilement) avec juste sed.

Le mieux ce serait de te familiariser avec un langage de script (par exemple un langage shell comme bash puisque tu sembles vouloir utiliser sed) et partir de là.

Bonne chance
0
-----geo----- Messages postés 333 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 29 mai 2014 58
Modifié par mamiemando le 22/06/2012 à 19:51
Je n'ai pas très bien compris ta demande moi je suis en BTS SIO et j'ai fait un script il n'y a pas longtemps donc inspire-t'en si tu veux. Je l'ai remixé pour t'aider parce qu'à la base il faisait 700 lignes donc si c'est ça que tu cherches tant mieux, sinon dis-moi ^^' Voilà à quoi je pense:

#/bin/sh 
shopt -s extglob 
fich=fichier-test 

echo -n "Veuillez entrer un mot: " 
read mot 

while [[ "$mot" != +([a-zA-Z]) ]] 

    do 
        echo "Champs incorrect" 
        echo -n "Veuillez enter un mot: " 
        read mot 
    done 

if [ -f $fich ] 
then 
              if  grep "$mot" $fich > /dev/null 
              then                      
                  echo "fin du script" 
                  exit 0 

                  else 
                  echo "$mot" >> $fich 
              fi 
else        
                echo "$mot" > $fich 
fi 

echo "Le fichier contient: " 
nl -ba $fich 
echo 
echo -n "Voulez mettre un mot a jour [Y/n], Y=oui, n=non: " 
read rep 

while [ "$rep" != Y ] && [ "$rep" != y ] && [ "$rep" != N ] && [ "$rep" != n ] 

    do 
        echo "Saisie incorrect" 
        echo -n "Mettre une ligne a jour ? [Y/n]: " 
        read rep 
    done 

if [ "$rep" = Y ] || [ "$rep" = y ];then 
echo 
echo -n "Saisissez le numero correspondant a la ligne que vous voulez mettre a jour: " 
read num 

while [[ "$num" != +([0-9]) ]] 

    do 
        echo "Saisie incorrect" 
        echo -n "num de la ligne a mettre a jour: " 
        read num 
    done 2>/dev/null 

echo -n "Veuillez taper un nouveau mot: " 
read mot2 

while [[ "$mot2" != +([a-zA-Z]) ]] 
    do 
        echo "Champs incorrect" 
        echo -n "Veuillez enter un mot: " 
        read mot2 
    done 
sed -i "${num}c$mot2" $fich 
else 
exit 0 
fi 

exit 0

Teste-le c'est pour remplacer les lignes dans un fichier si j'ai bien compris. Après tu peux changer avec tondomaine.com
0