# A propos de sed

**URL:** <https://www.debian-fr.org/t/a-propos-de-sed/30070>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/a-propos-de-sed/30070 "2016-02-21T00:25:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![totola](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/3be4f8/32.png) [@totola](https://www.debian-fr.org/u/totola)\
**Post date:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/a-propos-de-sed/30070/1 "2016-02-21T00:25:31Z")

</div>

Bonjour,

j’ai trouvé sur le net une commande sed pour transformer tous les retours chariots en espaces:

`sed -i ':z;N;s/\n/ /;bz' mon_fichier
`

ça marche bien et je comprends bien ce que signifie la partie s/\n/ / mais je ne vois pas ce que veut dire le reste!

J’ai bien essayé man sed et info sed mais ça ne me parle pas trop…  
Si quelqu’un arrive à m’expliquer simplement, je lui en serais très reconnaissant!

Merci!

---

<div class="post-metadata">

**Author:** ![BBT1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/ecc23a/32.png) [@BBT1](https://www.debian-fr.org/u/BBT1)\
**Post date:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/a-propos-de-sed/30070/2 "2016-02-21T00:25:32Z")

</div>

Le b c’est pour branch,  
donc bz c’est un saut vers le label z.

Ça tombe bien, :z déclare justement un label z  
Ensuite N rajoute la ligne suivante au “pattern space”.

C’est donc une boucle qui successivement lit une ligne et substitue un saut de ligne par un espace sur le “pattern space”. Ce dernier va devenir de plus en plus gros et être traité systématiquement par la subsitution, ce qui ne devrait pas être très satisfaisant pour des flux de taille importante 😉

Si ton but c’est juste de remplacer les sauts de ligne par des espaces (et pas de jouer avec sed), je te propose la forme suivante :

```auto

```

---

<div class="post-metadata">

**Author:** ![totola](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/3be4f8/32.png) [@totola](https://www.debian-fr.org/u/totola)\
**Post date:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/a-propos-de-sed/30070/3 "2016-02-21T00:25:33Z")

</div>

Merci, c’est très clair!

Par contre la commande avec tr me rajoute une virgule à la fin, même s’il n’ya pas de saut de ligne… Comment faire pour s’en débarrasser?

---

<div class="post-metadata">

**Author:** ![BBT1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/ecc23a/32.png) [@BBT1](https://www.debian-fr.org/u/BBT1)\
**Post date:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/a-propos-de-sed/30070/4 "2016-02-21T00:25:33Z")

</div>

> [@totola](#):
>
> Par contre la commande avec tr me rajoute une virgule à la fin, même s’il n’ya pas de saut de ligne… Comment faire pour s’en débarrasser?

Je ne sais pas, mais je ne pense pas que ça vienne de tr…
