Aérer un texte avec un SED

Fermé
abou - 11 oct. 2008 à 01:09
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 11 oct. 2008 à 13:47
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.
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
11 oct. 2008 à 13:10
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
11 oct. 2008 à 13:27
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
11 oct. 2008 à 13:47
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
11 oct. 2008 à 10:18
Salut,

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