Aérer un texte avec un SED

abou -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonsoir,

J'ai une variable contenant un texte plusieurs lignes et paragraphes (issu d'une selection). Je voudrais que chaque occurence :

POINT ESPACE soit remplacée par POINT ESPACE RETOUR

et chaque :

CARACTERE POINT CARACTERE soit remplacé par CARACTERE POINT ESPACE CARACTERE.

Merci pour vos idées.
Configuration: Mac OS X
Safari 525.20.1

3 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    En attendant...
    [tmpfs]$ cat fichier.txt
    Une phrase.Une autre. Encore une.Et une autre. Et la dernière.
    
    Ici le début d'un paragraphe.Une phrase sans espace. Une autre avec espace.
    
    Un autre paragraphe. Suivi d'une phrase.Et d'une sans espace.
    [tmpfs]$ sed 's/\.[ ]*/&\n/g' fichier.txt | sed '/./,/^$/!d;$ {/^$/d}'
    Une phrase.
    Une autre.
    Encore une.
    Et une autre.
    Et la dernière.
    
    Ici le début d'un paragraphe.
    Une phrase sans espace.
    Une autre avec espace.
    
    Un autre paragraphe.
    Suivi d'une phrase.
    Et d'une sans espace.
    [tmpfs]$
    ;-))
    1
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      Bla bla.Blabla
      Titi. Toto


      je pense qu'en fait il veut obtenir
      Bla bla. Blabla
      Titi.
      Toto


      Donc ce qui est Caractère Point Caractère doit rester sur la même ligne.
      Et ce qui est Point Espace, passe à la ligne suivante.

      Si on transforme tout Caractère Point Caractère en Caractère Point Espace Carcactère, on va toujours tomber dans le 1er cas Point Espace.

      Puisque ce que fait ta ligne de code, le fait aussi que la 1ère partie jusqu'au | (sauf le dernier saute de ligne)

      lami20j@debian:~/trash$ cat abou.txt
      Une phrase.Une autre. Encore une.Et une autre. Et la dernière.
      
      Ici le début d'un paragraphe.Une phrase sans espace. Une autre avec espace.
      
      Un autre paragraphe. Suivi d'une phrase.Et d'une sans espace.
      lami20j@debian:~/trash$
      lami20j@debian:~/trash$
      lami20j@debian:~/trash$  sed 's/\.[ ]*/&\n/g' abou.txt | sed '/./,/^$/!d;$ {/^$/d}'
      Une phrase.
      Une autre.
      Encore une.
      Et une autre.
      Et la dernière.
      
      Ici le début d'un paragraphe.
      Une phrase sans espace.
      Une autre avec espace.
      
      Un autre paragraphe.
      Suivi d'une phrase.
      Et d'une sans espace.
      lami20j@debian:~/trash$
      lami20j@debian:~/trash$
      lami20j@debian:~/trash$
      lami20j@debian:~/trash$  sed 's/\.[ ]*/&\n/g' abou.txt
      Une phrase.
      Une autre.
      Encore une.
      Et une autre.
      Et la dernière.
      
      
      Ici le début d'un paragraphe.
      Une phrase sans espace.
      Une autre avec espace.
      
      
      Un autre paragraphe.
      Suivi d'une phrase.
      Et d'une sans espace.
      
      
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Oui c'est bien ce que j'avais compris au début.

    Mais après réflexion (si si ça m'arrive), je me suis dit que une fois que :
    CARACTERE POINT CARACTERE
    était remplacé par :
    CARACTERE POINT ESPACE CARACTERE.

    Ben ça devenait du fait un :
    POINT ESPACE
    et donc qu'il fallait le remplacer par :
    POINT ESPACE RETOUR

    D'où ma syntaxe :-))
    1
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Merci de mettre un exemple plus parlant AVANT => APRÈS histoire qu'on soit bien sur la même longueur d'onde ;-))
    -1