Fonction sed (script shell)

Résolu
Bonjour,
j'ai un petit problème avec ma fonction sed dans un script shell, lorsque je teste le script, j'ai un message d'erreur comme quoi la fonction sed est imcomplete... (je cherche à effacer des lignes pour enlever un virtualhost)

#!/bin/sh

#trouver un numero de ligne grace à un mot clé
$var=`grep -n $1 /etc/bind/named.conf | cut -d : -f 1`

#effacer un intervalle de lignes
sed '\$var,\$var+3d' /etc/bind/named.conf

#effacer le fichier correspondant au mot clé
rm /etc/bind/$1

Merci d'avance
Configuration: Linux
Firefox 3.0

8 réponses

  1. C'est bon sa marche en faisant:

    sed -i "/$1/,+3d" /etc/bind/named.conf

    j'efface bien les quatres lignes et le fichier est sauvegardé

    Merci beaucoup de ton aide, c'est très sympa
    Bonne soirée ;)
    1. Modérateur
      Rajoutes ça alors :
      sed  -i.bak "/$1/,+3d" /etc/bind/named.conf
      non seulement ça éditera le fichier "en place", mais en plus ça fera une sauvegarde nommée "named.conf.bak".

      ;-))
      1. J'ai essayé en supprimant le grep et en mettant ta ligne de code,
        comme résultat sa m'affiche mon fichier avec les lignes qui ont bien été effacé mais lorsque j'ouvre
        mon fichier dans une autre fenetre, les lignes sont toujours là...
        1. Merci pour tes réponses jipicy
          $var est le numero de la ligne ou se trouve le mot clé $1
          Apres je veux effacer cette ligne ainsi que les trois suivantes.
          Je vais essayé ta méthode
          Encore merci de m'avoir répondu
          1. Modérateur
            Et si tu essayais tout simplement :
            sed "/$1/,+3d" /etc/bind/named.conf 
            sans le "grep" et donc sans le "$var", hein ?

            ;-))
            1. Modérateur
              Salut,

              A quoi ressemble "$var" et qu'espères-tu faire à partir de "'\$var,\$var+3d'" ???