Bonjour,

Je ne suis pas un habitue de sed, j'espere que vous pourrez m'aider ou me diriger sur le bon outil.

J'ai un fichier de configuration sous cette forme :

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
25
26
27
28
        <Setting>
                <SettingName>hal.stdin</SettingName>
                <Identifier>STDIN</Identifier>
                <Type>UnquotedString</Type>
                <Value>none</Value>
                <DefaultValue>none</DefaultValue>
                <DestinationFile>system_h_define</DestinationFile>
                <Description>Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.</Description>
                <Restrictions/>
                <Group>Common</Group>
        </Setting>
        <Setting>
                <SettingName>hal.stdout</SettingName>
                <Identifier>STDOUT</Identifier>
                <Type>UnquotedString</Type>
                <Value>none</Value>
                <DefaultValue>none</DefaultValue>
                <DestinationFile>system_h_define</DestinationFile>
                <Description>Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.</Description>
                <Restrictions/>
                <Group>Common</Group>
        </Setting>
        <MemoryMap>
                <slaveDescriptor>main_mem</slaveDescriptor>
                <addressRange>0x00000000 - 0x007FFFFF</addressRange>
                <addressSpan>8388608</addressSpan>
                <attributes>memory</attributes>
        </MemoryMap>
Mon but est de remplacer le valeur none (balise Value) de hal.stdout par une autre valeur.

Le soucis comme vous l'aurez compris c'est que le pattern <Value>*</Value> apparait partout, il faut donc tenir compte du contexte.

Comment pourrai-je faire avec sed ? Est-il l'outil qu'il me faut vu que sed travaille ligne par ligne, peut-etre que faire ce que je souhaite n'est pas possible.

Merci