# Sed - mettre plusieurs collonnes en une seule ligne

**URL:** <https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088 "2016-02-20T16:19:21Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![ziouplaboum](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/f1d935/32.png) [@ziouplaboum](https://www.debian-fr.org/u/ziouplaboum)\
**Post date:** [Février 20, 2016, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/1 "2016-02-20T16:19:21Z")

</div>

Voila un bout de code incomplet:

`mount | grep sshfs > tmp2
sed 's/.*\(\/home\/[a-z]*\/fuse[^].*\) type.*/\1/g' tmp2 > tmp3
DOSSIER=$(ans=$(zenity --list --text "Choisir le dossier à démonter" --radiolist --column "Choix" --column "Dossier" ### c'est là ###) ; 
echo $DOSSIER
`

Le fichier tmp3 contient les chemins absolus (un par collonne) vers les points ou sont montés des systèmes de fichiers grâce à sshfs.

Imaginons que j’ai ça dans le fichier tmp3:

[quote]  
chemin1  
chemin2  
chemin3[/quote]  
Idéalement Je veux mettre le contenu de ce fichier ainsi:

```auto

```

Mettre les FALSE en début de ligne je sais faire (tous les chemins commencent par /home):

```auto

```

En revanche je ne parviends pas à tout mettre sur une seule ligne et plus dur; à faire en sorte que cette ligne soit passée comme chaine de caractère dans la ligne des options de la commande zenity (là ou j’ai écrit ### c’est là ### dans le bout de code imcomplet du début du poste)…

Voila, j’espère que j’ai été clair.

---

<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, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/2 "2016-02-20T16:19:23Z")

</div>

pour reformatter tmp3:

```auto

```

pour tout chainer, donc:

```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, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/3 "2016-02-20T16:19:23Z")

</div>

et si tu veux passer à la ligne aprés:

```auto

```

---

<div class="post-metadata">

**Author:** ![ziouplaboum](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/f1d935/32.png) [@ziouplaboum](https://www.debian-fr.org/u/ziouplaboum)\
**Post date:** [Février 20, 2016, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/4 "2016-02-20T16:19:24Z")

</div>

C’est réglé; c’est pas beau mais ça marche:

[code]mount | grep sshfs \> tmp2  
sed ‘s/._(/home/[a-z]_/fuse[^]._) type._/\1/g’ tmp2 \> tmp3  
sed ‘s/^(/home)/FALSE \1/g’ tmp3 \> tmp4

#construction de LISTE

N0=`cat tmp4 | wc -l`  
while [“$N0” -ne 0]  
do  
LISTE=`head -n 1 tmp4`" "`echo $LISTE`  
N0=`expr $N0 - 1`  
sed ‘1d’ tmp4 \> tmp5  
rm -f tmp4  
mv tmp5 tmp4  
done  
[/code]

---

<div class="post-metadata">

**Author:** ![ziouplaboum](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/f1d935/32.png) [@ziouplaboum](https://www.debian-fr.org/u/ziouplaboum)\
**Post date:** [Février 20, 2016, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/5 "2016-02-20T16:19:24Z")

</div>

Pardon mattotop j’étais en train d’éditer depuis un bout de temps donc j’ai pas réalisé que tu m’avais répondu.  
Je ne connais pas awk; je vais jeter un coup d’oeil vu que avec sed c’est un peu galère (il y a surement moyen d’éviter une boucle while ou for mais bon…) Encore un langage auquel il faut jeter un coup d’oeil quoi!

Merci en tout cas! C’est sympa!

---

<div class="post-metadata">

**Author:** ![thialme](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/50afbb/32.png) [@thialme](https://www.debian-fr.org/u/thialme)\
**Post date:** [Février 20, 2016, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/6 "2016-02-20T16:19:25Z")

</div>

> [@](#):
>
> ```auto
> 
> ```

Merci, je ne connaissais pas -v ORS=" ". La man page m’a aidé à comprendre :p!

---

<div class="post-metadata">

**Author:** ![ed](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ed/32/5886_2.png) [@ed](https://www.debian-fr.org/u/ed)\
**Post date:** [Février 20, 2016, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/7 "2016-02-20T16:19:25Z")

</div>

commence par faire

cat /proc/mounts

plutot…

---

<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, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/8 "2016-02-20T16:19:26Z")

</div>

Et si tu veux faire du awk, du sed, et plus si affinité: perl.  
Practical Extraction and Report Language=Langage Pratique d’Extraction et de Rapport  
pas mieux pour traiter un flux.

---

<div class="post-metadata">

**Author:** ![ziouplaboum](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/f1d935/32.png) [@ziouplaboum](https://www.debian-fr.org/u/ziouplaboum)\
**Post date:** [Février 20, 2016, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/9 "2016-02-20T16:19:30Z")

</div>

Merci pour vos conseils avisés.

Pour ce qui est de cat /proc/mount la différence n’est pas trés violente avec mount, en tout cas pour l’usage que je veux en faire. En tout cas merci du conseil.

`14:32 bob@blip ~% cat /proc/mounts | grep encfs
encfs /home/bob/fuse/encfs fuse rw,nosuid,nodev,user_id=1000,group_id=1000,default_permissions 0 0
14:32 bob@blip ~% mount | grep encfs
encfs on /home/bob/fuse/encfs type fuse (rw,nosuid,nodev,default_permissions,user=bob)
`

Le programme:

- finir ce que je suis en train de faire en bash
- voir awk de plus prés
- refaire le tout en perl en “apprenant perl”

Merci.

---

<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, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/10 "2016-02-20T16:19:30Z")

</div>

quote="ziouplaboum"  
Pour ce qui est de cat /proc/mount la différence n’est pas trés violente avec mount, en tout cas pour l’usage que je veux en faire. En tout cas merci du conseil.  
(…)[/quote]lire un fichier est infiniment plus rapide et moins gourmand en ressource que lancer une commande qui va faire au final la même chose plus une mise en forme.  
Si tu répètes régulièrement ta commande, ça va jouer.

---

<div class="post-metadata">

**Author:** ![ziouplaboum](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/f1d935/32.png) [@ziouplaboum](https://www.debian-fr.org/u/ziouplaboum)\
**Post date:** [Février 20, 2016, 4:19 UTC](https://www.debian-fr.org/t/sed-mettre-plusieurs-collonnes-en-une-seule-ligne/9088/11 "2016-02-20T16:19:32Z")

</div>

Ok - Je n’avais pas du tout ce genre de problématique en tête en écrivant le script. Merci de l’astuce et de l’xplication.
