Fonction sed (script shell)

Résolu/Fermé
Kessie - 24 juin 2008 à 18:31
 Kessie - 24 juin 2008 à 20:30
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
A voir également:

8 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
24 juin 2008 à 18:38
Salut,

A quoi ressemble "$var" et qu'espères-tu faire à partir de "'\$var,\$var+3d'" ???
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
24 juin 2008 à 18:48
Et si tu essayais tout simplement :
sed "/$1/,+3d" /etc/bind/named.conf 
sans le "grep" et donc sans le "$var", hein ?

;-))
0
iti07m Messages postés 6 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 24 juin 2008 2
24 juin 2008 à 19:02
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
0
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à...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
24 juin 2008 à 20:08
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".

;-))
0
Merci beaucoup :)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
24 juin 2008 à 20:25
De rien ;-))
0
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 ;)
0