[SHELL] remplacement d'une ligne

Le
michael p
Bonjour

voila j'ai le fichier dhcpd.conf suivant (je ne vous en donne qu'une
partie):

# option definitions common to all supported networks
option domain-name "mondomain.com";
option domain-name-servers 192.168.1.254;
default-lease-time 3600;
max-lease-time 7200;
server-name "boom";
#this is a very basic subnet declaration
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.150;
}
option tftp-server-name "192.168.1.22";
option bootfile-name "/tftpboot/Package1_40/st2030s.txt";
ddns-update-style-none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;



j'ai besoin de trouver un script shell qui me permette de remplacer la ligne
"option bootfile-name "/tftpboot/Package1_40/st2030s.txt";"

je veux faire son remplacement par
"option bootfile-name "/tftpboot/$1/st2030s.txt";"

où $1 est un parametre donné au script.

je veux pouvoir modifier cette ligne en donnant son numero de ligne si
possible. c'est la ligne 24 de mon fichier (plus generalement je souhaite
savoir comment faire our modifier la ligne d'un fichier en donnant sa
ligne).

j'ai essayé avec sed mais c'est une commande assez dure a maitriser.

merci d'avance

Michael



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vos réponses
Trier par : date / pertinence
Jacques L'helgoualc'h
Le #8760681
michael p a écrit, mardi 28 février 2006, à 16:47 :
Bonjour



bonjour,

voila j'ai le fichier dhcpd.conf suivant [...]
j'ai besoin de trouver un script shell qui me permette de remplacer la ligne
"option bootfile-name "/tftpboot/Package1_40/st2030s.txt";"

je veux faire son remplacement par
"option bootfile-name "/tftpboot/$1/st2030s.txt";"

où $1 est un parametre donné au script.

je veux pouvoir modifier cette ligne en donnant son numero de ligne si
possible. c'est la ligne 24 de mon fichier (plus generalement je souhaite
savoir comment faire our modifier la ligne d'un fichier en donnant sa
ligne).
j'ai essayé avec sed mais c'est une commande assez dure a maitriser.



sed -i.bak -e '24s,/Package1_40/,/'"$1"'/,' /etc/dhcp.conf

Bien sûr, il ne faut pas que $1 contienne une virgule, que le
/Package1_40/ soit bien le seul ou le premier dans la ligne, etc.

Je n'ai pas trop confiance en un numéro de ligne fixe fiable --- on peut
utiliser /^option bootfile-name[[:space:]]/ à la place de l'adresse 24,
si ce type de ligne est unique.

merci d'avance



de rien,
--
Jacques L'helgoualc'h


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme