#1 Le 15/12/2018, à 20:41
- arno_lupin
[résolu] afficher plusieurs lignes en colonnes
Salut,
en sortie sur une commande, j'ai un truc du style
aaa
aaaa
bbbbb
cccc
cc
ccc
ddd
je souhaiterais l'afficher en colonnes
aaa bbbbb cccc ddd
aaaa cc
ccc
( notez qu'elle n'ont pas toutes le même nombre de lignes )
Je pense pouvoir y parvenir en coupant les différents "block" ( aaa , bbbbb ... ), en les mettant dans des fichiers temporaires séparés et en collant tout ça avec la commande paste.
Ça me semble sacrément bourrin !
Quelqu'un aurait-il un petit coup magique de awk ou autre ?
Dernière modification par arno_lupin (Le 16/12/2018, à 00:34)
Ubuntu 20.04.1 LTS (Focal Fossa) 64-bit .. MATE 1.24.0
Hors ligne
#2 Le 15/12/2018, à 21:38
- pingouinux
Re : [résolu] afficher plusieurs lignes en colonnes
Bonsoir,
Essaye ceci
n=0; >o.$n
while read ligs
do
if [ "$ligs" == "" ]
then
((n++)); >o.$n
else
echo "$ligs" >>o.$n
fi
done <fichier_de_départ
eval paste o.{0..$n}
Hors ligne
#3 Le 15/12/2018, à 22:11
- arno_lupin
Re : [résolu] afficher plusieurs lignes en colonnes
Bravo, ça marche !
merci pingouinux
Cependant, on passe par une multitude de fichiers temporaires.
N'y aurait-il pas plus "léger" ?
Ubuntu 20.04.1 LTS (Focal Fossa) 64-bit .. MATE 1.24.0
Hors ligne
#4 Le 15/12/2018, à 23:15
- pingouinux
Re : [résolu] afficher plusieurs lignes en colonnes
Tu peux ajouter à la fin
eval rm o.{0..$n}
pour supprimer les fichiers temporaires.
Hors ligne
#5 Le 16/12/2018, à 00:33
- arno_lupin
Re : [résolu] afficher plusieurs lignes en colonnes
oui, je comprends.
Comme mon fichier est long et que je ne le veux que sur 4 colonnes, je rajoute une petite boucle :
n=0; >o.$n
while read ligs
do
if [ "$ligs" == "" ]
then
((n++)); >o.$n
else
echo "$ligs" >>o.$n
fi
done <fichier_de_départ
for ((i=0; i<=n; i++))
do
paste "o.$((i++))" "o.$((i++))" "o.$((i++))" "o.$i" > oo.$i
fic=( ${fic[@]} "oo.$i" )
done
cat ${fic[@]} > fichier_d_arrivée
eval rm -f o.{0..$n}
rm -f ${fic[@]}
ça pourrais servir à quelqu'un d'autre...
merci beaucoup pingouinux, je passe en [résolu]
Ubuntu 20.04.1 LTS (Focal Fossa) 64-bit .. MATE 1.24.0
Hors ligne
#6 Le 16/12/2018, à 07:48
- pingouinux
Re : [résolu] afficher plusieurs lignes en colonnes
Il y aura une erreur si le dernier groupe contient moins de 4 fichiers.
Hors ligne