Bonjour,

J'ai un fichier de conf qui contient des balises de ce genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
<Location /toto/ >
        ProxyPass        http://m.toto.com/ retry=0
        ProxyPassReverse http://m.toto.com/
        ProxyPassReverseCookiePath / /toto/
        ProxyPassReverseCookieDomain .toto.com 
 
        SetOutputFilter INFLATE;proxy-html;DEFLATE
        ProxyHTMLLogVerbose On
        ProxyHTMLExtended On
        ProxyHTMLURLMap  / /toto/
        ProxyHTMLURLMap  href="m.toto.com/" href="/toto/"
        ProxyHTMLURLMap  http://m.toto.com/ /toto/
        ProxyHTMLURLMap m.toto.com 
</Location>
 
<Location /titi/ >
        ProxyPass        http://m.titi.com/ retry=0
        ProxyPassReverse http://m.titi.com/
        ProxyPassReverseCookiePath / /titi/
 </Location>
Je dois transformer ce fichier comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
        ProxyPass        /toto/ http://m.toto.com/ retry=0
        ProxyPassReverse /toto/ http://m.toto.com/
<Location /toto/ >
        ProxyPassReverseCookiePath / /toto/
        ProxyPassReverseCookieDomain .toto.com 
 
        SetOutputFilter INFLATE;proxy-html;DEFLATE
        ProxyHTMLLogVerbose On
        ProxyHTMLExtended On
        ProxyHTMLURLMap  / /toto/
        ProxyHTMLURLMap  href="m.toto.com/" href="/toto/"
        ProxyHTMLURLMap  http://m.toto.com/ /toto/
        ProxyHTMLURLMap m.toto.com 
</Location>
 
        ProxyPass        /titi/ http://m.titi.com/ retry=0
        ProxyPassReverse /titi/ http://m.titi.com/
<Location /titi/ >
        ProxyPass        http://m.titi.com/ retry=0
        ProxyPassReverse http://m.titi.com/
        ProxyPassReverseCookiePath / /titi/
 </Location>
C'est à dire jour chaque jonction comme /toto et /titi/, il faut sortir les balises
ProxyPass et ProxyPassReverse.

J'ai mis en place un script mais qui permet de un fichier qui contient un fichier qui contient une seule jonction de type toto:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#!/bin/sh
TMPFILE1="/tmp/temp1.txt"
TMPFILE2="/tmp/temp2.txt"
 
while read curline; do
    grep -e "ProxyPass " -e "ProxyPassReverse "|sed 's/http/\/toto\/ http/g' > $TMPFILE1
done < input.txt
 
echo "<Location /toto/ >" > $TMPFILE2
 
while read curline; do
    grep -v -e "ProxyPass " -e "ProxyPassReverse " >> $TMPFILE2
done < input.txt
 
cat $TMPFILE1 > output.txt
cat $TMPFILE2 >> output.txt
 
rm -f $TMPFILE1 $TMPFILE2
Alors comment je peux modifier mon script pour traiter un fichier d'entrée qui contient plusieurs jonction.

Merci d'avance.