# problème avec sed

**URL:** <https://www.debian-fr.org/t/probleme-avec-sed/25661>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661 "2016-02-20T21:46:28Z")\
**Posts on this page:** 15\
**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 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/1 "2016-02-20T21:46:28Z")

</div>

Bonjour,

Je dispose d’un fichier contenant 2 colonnes avec des chiffres, j’aimerais rajouter une ligne au dessus de chaque colonne avec du texte, il me semble que c’est possible avec sed? non?

J’ai essayé ça:

```auto

```

sans résultats…

voila mon fichier:

`4,56600000e-03 -5,60000000e+00
 4,56800000e-03 -5,60000000e+00
 4,57000000e-03 -5,60000000e+00
 4,57200000e-03 -5,60000000e+00
 4,57400000e-03 -5,52000000e+00
 4,57600000e-03 -5,52000000e+00
 4,57800000e-03 -5,60000000e+00
 4,58000000e-03 -5,52000000e+00
 4,58200000e-03 -5,52000000e+00
 4,58400000e-03 -5,52000000e+00
 4,58600000e-03 -5,52000000e+00
 4,58800000e-03 -5,52000000e+00
 4,59000000e-03 -5,52000000e+00
 4,59200000e-03 -5,44000000e+00
 4,59400000e-03 -5,44000000e+00
 4,59600000e-03 -5,44000000e+00
 4,59800000e-03 -5,44000000e+00
 4,60000000e-03 -5,44000000e+00
 4,60200000e-03 -5,44000000e+00
 4,60400000e-03 -5,36000000e+00
 4,60600000e-03 -5,44000000e+00
`

En fait j’aimerais rajouter “t” au dessus de la première colonne et “CH1” au-dessus de la deuxième.

Merci

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/2 "2016-02-20T21:46:29Z")

</div>

Bizarre d’utiliser sed pour ça… avec awk :

```auto

```

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/3 "2016-02-20T21:46:29Z")

</div>

```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 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/4 "2016-02-20T21:46:31Z")

</div>

Ok, merci de vos réponses!

En fait je viens de comprendre pourquoi ma commande “ne marchait pas”… En réalité c’est moi qui suis un boulet car mon fichier comportait trop de données et cat ne m’affichait pas le début!! 😊

Donc ça marche bien aussi avec sed!

Ceci dit, j’ai une autre question je dispose d’un autre fichier “fichier2” du type:

` 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.44000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.44000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00`

Et j’aimerais insérer cette colonne à coté des deux premières dans le fichier “fichier”. Comment puis-je faire?

Merci

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/5 "2016-02-20T21:46:32Z")

</div>

Salut matt 🙂

> [@mattotop](#):
>
> `echo -e "t\tCH1" | cat - fichier > fichier`

Alors tu te souviens encore de ce bon vieux shell ^^

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/6 "2016-02-20T21:46:32Z")

</div>

[quote=«&nbsp;totola&nbsp;»]Ok, merci de vos réponses!

En fait je viens de comprendre pourquoi ma commande «&nbsp;ne marchait pas&nbsp;»… En réalité c’est moi qui suis un boulet car mon fichier comportait trop de données et cat ne m’affichait pas le début!! 😊 [/quote]  
Je doute que ce soit cat, je pense plutôt que c’est ton émulateur de terminal.

> [@totola](#):
>
> Donc ça marche bien aussi avec sed!

Oui et je viens de comprendre pouquoi 🙂

[quote=«&nbsp;totola&nbsp;»]Ceci dit, j’ai une autre question je dispose d’un autre fichier «&nbsp;fichier2&nbsp;» du type:

` 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.44000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.44000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00
 7.36000000e+00`

Et j’aimerais insérer cette colonne à coté des deux premières dans le fichier «&nbsp;fichier&nbsp;». Comment puis-je faire?

Merci[/quote]  
Tu a besoin de répéter l’action plusieurs fois ?  
Parce que c’est pas agréable à faire en uniligne, faudrait faire un script. Mais si tu n’a qu’une fois à le faire :  
[ul][li]tu ouvre ton premier fichier avec vim[/li]  
[li]`:$<cr>:r<nom-de-ton-second-fichier><cr>V20x:1<cr>$<C-v>20<cr>p`[/li][/ul]  
Alors il faut remplacer les par entré et c’est Ctrl+v. Pour l’explication :  
[ul][li]`:$<cr>` se placer sur la dernière ligne ;[/li]  
[li]`:r<nom-de-ton-second-fichier><cr>`ajouter ton second fichier à la fin du premier[/li]  
[li]`V20x`couper les 20 prochaines lignes[/li]  
[li]`:1<cr>`se placer sur la première ligne[/li]  
[li]`$`se placer sur le dernier caractère[/li]  
[li]`<C-v>20<cr>`effectuer une sélection carré sur le dernier caractère des 20 prochaines lignes[/li]  
[li]`p`coller le contenu de ton buffer[/li][/ul]

Tu peut lancer vim en mode non-interactif pour l’utiliser comme un script.

(il doit y avoir un moyen de copier directement le contenu d’un fichier dans un buffer, mais j’ai pas cherché la commande).

---

<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 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/7 "2016-02-20T21:46:33Z")

</div>

Ben oui, justement j’aurais besoin de l’intégrer dans un script pour le faire de façon systématique…

PS: Ce sont des fichiers avec environ 2500 lignes

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/8 "2016-02-20T21:46:34Z")

</div>

[quote=“MisterFreez”]Salut matt 🙂 [quote=“mattotop”]`echo -e "t\tCH1" | cat - fichier > fichier`[/quote]Alors tu te souviens encore de ce bon vieux shell ^^[/quote]Yo freeze !  
Le shell, c’est comme le vélo, ça ne s’oublie pas 😉

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/9 "2016-02-20T21:46:34Z")

</div>

quote="totola"  
Et j’aimerais insérer cette colonne à coté des deux premières dans le fichier “fichier”. Comment puis-je faire?

Merci[/quote]`man paste`

---

<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 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/10 "2016-02-20T21:46:35Z")

</div>

> [@](#):
>
> `man paste`

Ok, merci, en effet, c’était la bonne piste!

```auto
paste fichier1 fichier2 > fichier3
```

et ça marche!

---

<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 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/11 "2016-02-20T21:46:47Z")

</div>

Bon, en effet ça marche mais la troisième colonne est rajoutée avec une tabulation d’écart alors que j’aimerais juste un espace…

il doit y avoir un truc avec l’option paste -d mais j’ai pas bien compris l’histoire avec la liste des délimiteurs?

`-d, --delimiters liste_delimiteurs
    Utiliser successivement les caractères de la liste_de_délimiteurs plutôt que les Tabulations pour séparer les lignes regroupées. Quand liste_délimiteurs est épuisée, reprendre au début de la liste.`

Si je fais juste `paste -d fichier1 fichier2 > fichier3` ça suffit?

Merci

---

<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 20, 2016, 9:46 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/12 "2016-02-20T21:46:48Z")

</div>

Ok, trouvé:

```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 20, 2016, 9:52 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/13 "2016-02-20T21:52:22Z")

</div>

Bonjour,

en fait, au risque d’être un peu embêtant, je souhaiterais maintenant convertir les espaces séparant chaque colonne en tabulation (c’est plus pratique pour les tableurs que je veux utiliser…). J’ai trouvé la commande unexpand qui devrait fonctionner, mais d’après ce que j’ai lu ce n’est que pour les espaces doubles…

Concrètement j’ai un fichier du type:

` 1 2 3
 4 5 6
 7 8 9`  
et j’aimerais:

`1 2 3
4 5 6
7 8 9`

Au passage, j’ai un espace en début de chaque ligne que j’aimerais bien supprimer…

Merci de votre aide!

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 9:52 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/14 "2016-02-20T21:52:22Z")

</div>

Sed est ton ami :

```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 20, 2016, 9:52 UTC](https://www.debian-fr.org/t/probleme-avec-sed/25661/15 "2016-02-20T21:52:22Z")

</div>

Super, merci!
