[Unix] Commande sed

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?

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

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

    lami20j
    1. Modérateur
      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.

      ;-))
      1. Modérateur
        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
      2. Modérateur
        Salut,

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