Re: Scripting etc..

トップ ページ

このメッセージに返信
著者: CTB
日付:  
To: guilde
題目: Re: Scripting etc..


CTB wrote:

> Philippe B wrote:
>
>>Bonjour tout le monde,
>>
>>je cherche à me perfectionner un peu en shell. J'aurais besoin de
>>faire ce genre de manip :
>>
>>J'ai un fichier contenant des vhosts apache
>>
>><Virtualhost toto.com>
>>
>></Virtualhost>
>>
>><Virtualhost toto.com>
>>
>></Virtualhost>
>>
>><Virtualhost toto.com>
>>
>></Virtualhost>
>>
>>pensez vous que c'est possible avant chaque </Virtualhost> d'insérer
>>un texte personnalisé ? est ce possible en bash ? ou y'a-t-il un
>>langage prédestiné
>>
>>
>>
>>
> Bonjour,
>
> Ta question est un peu ambigus, si tu veux ajouter le meme texte
> devant chaque "</Virtualhost>" alors tu peux utiliser SED comme
> ci-dessous.
>
> /ctb@CTB:~$ *sed 's/<\/Virtualhost>/bla bla<\/Virtualhost>/g'
> virthost.txt *
> <Virtualhost toto.com>
>
> bla bla</Virtualhost>
>
> <Virtualhost toto.com>
>
> bla bla</Virtualhost>
>
> <Virtualhost toto.com>
>
> bla bla</Virtualhost>/
>
> Tu peux biensur devier la sortie vers un fihier en ajoutant ">
> fichier" (sans les ")...
>
> Maintenant je doute que c'est ce que tu veux reellement faire. Je 
> pense que tu veux mettre des entrees differentes devant chaque 
> "</Virtualhost>".
> Dans ce cas, j'utiliserais cette methode (mais il y en a plein 
> d'autres...) :
> /
> /Change la 1 occurence :
> /
> ctb@CTB:~$    *listline=$(grep -n '</Virtualhost>' virthost.txt | cut 
> -d ':' -f1);line=$(echo $listline | cut -d ' ' -f 1);sed "$line,$line 
> i toto" virthost.txt
> *<Virtualhost toto.com>

>
> toto
> </Virtualhost>
>
> <Virtualhost toto.com>
>
> </Virtualhost>
>
> <Virtualhost toto.com>
>
> </Virtualhost>/
>
> Change la 2 occurence :
>
> /ctb@CTB:~$    *listline=$(grep -n '</Virtualhost>' virthost.txt | cut 
> -d ':' -f1);line=$(echo $listline | cut -d ' ' -f 2);sed "$line,$line 
> i toto" virthost.txt *
> <Virtualhost toto.com>

>
> </Virtualhost>
>
> <Virtualhost toto.com>
>
> toto
> </Virtualhost>
>
> <Virtualhost toto.com>
>
> </Virtualhost>
>
>
> //*listline=$(grep -n '</Virtualhost>' virthost.txt | cut -d ':'
> -f1)*/ --> cree la liste des numeros de lignes contenant "</Virtualhost>"
> /*
> line=$(echo $listline | cut -d ' ' -f 2)*/ --> selectionne le numero
> de ligne de l'item 2 de la liste.
>
> /*sed "$line,$line i toto"*/ --> hop isere avant la ligne de l'item 2
> le texte "toto".
>
>
> Voila j'esperes que ca t'aidera...
> Si tu veux plus d'explications n'hesites pas a m'envoyer un petit mail.
>
> Cordialement
> René
>
>