Rechercher : dans
Par :

[Unix] Commande sed

Dernière réponse le 6 sep 2006 à 17:03:31 Goku, le 6 sep 2006 à 14:38:34 
 Signaler ce message aux modérateurs

Bonjour,
A tout les acrros d'unix,

J'ai un fichier d'entrée contenant:
<ab>
<cd>

je souhaite avec une commande unix faire comprendre à sed le saut de ligne et remplacer la chaine rechercher
<ab>
<cd>
en
<ab>
< e>

Comment faire comprendre à sed le saut de ligne?

1

lami20j, le 6 sep 2006 à 14:56:22

Salut,

tu veux modifier <cd> e < e> si est seulement <cd> ce trouve après <ab>\n ?!

lami20j

Répondre à lami20j

2

jipicy, le 6 sep 2006 à 15:29:46

Salut,

Je suis pas sûr d'avoir tout bien compris, mais apparemment tu veux modifier un motif dans un intervalle défini... alors essaie ça :

[jp@MDK tmpfs] $ cat fich.txt

<ab>
blablabla
<cd>
<bd>
<cd>
<ab>
blablabla
<cd>
blablabla
blablabla
<ab>
<cd>

[jp@MDK tmpfs] $ sed '/<ab>/,/<cd>/s/<cd>/< e>/' fich.txt

<ab>
blablabla
< e>
<bd>
<cd>
<ab>
blablabla
< e>
blablabla
blablabla
<ab>
< e>

[jp@MDK tmpfs] $
On substitue donc la chaine "<cd>" par la chaine "< e>" uniquement lorsqu'elle fait partie de l'intervalle "<ab><cd>", avec ou sans caractères entre.

;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

3

lami20j, le 6 sep 2006 à 16:07:25

Salut,

je crois que c'est ça qu'il veut (enfin comme on est 2 qu'on a compris la même chose ;))

j'attendais ton message, avec sed je ne savais pas le faire ;)

lami20j

Répondre à lami20j

4

jipicy, le 6 sep 2006 à 16:10:07

Salut,

Alors si nous sommes deux, l'union faisant la force... on a raison ;-))
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

5

Goku, le 6 sep 2006 à 16:59:50

WAi c'est exactement ça!
Trop fort Lamij!

Répondre à Goku

6

 jipicy, le 6 sep 2006 à 17:03:31

;-))
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy
Collection CommentÇaMarche.net