Aide Linux - Liste de diffusion Ze-Linux hebergée par
[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