Aide Linux - Liste de diffusion Ze-Linux hebergée par Hebergement - Over-Link
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [SHELL] remplacement d'une ligne



Le Mercredi 01 mars 2006
"michael p" <mikep3000@xxxxxxxxxxx> a écrit:

> 
> salut ca marche super MERCI
> 
> peux tu m'expliquer la ligne de commande
> je n'ai pas trop compris l'expression reguliere
> 
> comment il sait qu'il faut changer toute la ligne alors que tu lui ndique 
> juste le debut?
> 

sed ne fait pas que des substitutions , il a  toutes une gamme de commandes
(s , c ,a ,i, p ....) qui par defaut vont s'appliquer à toutes les lignes du
fichier . Mais on peut restreindre leur champ d'action en les prefixants avec
soit des numeros de lignes soit des expressions regulieres .

Par exemple , avec p (print) 

	sed -n -e 'p' un_fichier 

va afficher toutes les lignes du fichier 

	sed -n -e '1,/^toto/p' un_fichier 

va afficher de la  ligne  1 à celle qui commence par toto

Avec 

	sed  -e "/^option bootfile-name/c\option ....

la commande c ne sera appliquée que sur les lignes commencant par 
option bootfile-name ( attention , avec un sed autre que celui de gnu ,il faut 
ecrire 
	sed -e "/xxx/c\
			yyyy"

Sinon tu peux aussi utiliser s 

sed  -e "s#^option bootfile-name.*#option bootfile-name tftpboot/$1/st2030s.txt\";#"

ou plus rapide ( puisque la commande n'est pas faite sur chaque ligne)

sed  -e "/^option bootfile-name.*/s##option bootfile-name tftpboot/$1/st2030s.txt\";#"

A plus

-- 
Christophe Desforges
cjdesforges@xxxxxxxxxxx
----------------------------------
Informations, désabonnement, règles, obligations sur la liste Aide-Linux :
http://lists.ze-linux.org/howto_ml.html
Liste Herbergee par Over-Link [http://www.over-link.net]


Aide Linux - Liste de diffusion Ze-Linux hebergée par Hebergement - Over-Link