Convertir des lignes en colonnes

Résolu/Fermé
Dan_NB Messages postés 9 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 17 août 2013 - 16 août 2013 à 20:54
Dan_NB Messages postés 9 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 17 août 2013 - 17 août 2013 à 18:38
Bonjour, j'aimerais savoir comment convertir des lignes en colonnes dans un fichier texte ?(en vue d'une importation pour gnuplot)

exemple : x 1 2

y 12 13

deviendrait :

x y
1 12
2 13

rem : la taille de mes 2 lignes x et y sont assez grande, et je me demande si cela peut poser problème. En effet, avec la commande :
paste <(head -1 nn| tr -s ' ' '\n') <(tail -1 nn| tr -s ' ' '\n')

j'obtiens bien des colones mais la colonne des x est décalée par rapport à celle des y.

Merci d'avance !
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
16 août 2013 à 21:20
Salut,

Le problème c'est qu'il nous faut des exemples concrets et non des approximations.

En fait tes soi disant 2 lignes sont au nombre de 8 ;-(

En prenant référence sur ton exemple donné sur Developpez

$ cat -n brol 
     1	0    1E-20      39.6      79.2     118.9     158.5     198.1     237.8     277.4     317.0  
     2	    385.7     421.4     457.1     492.8     528.5     564.2     599.9     635.6     671.3  
     3	    723.1     759.9     796.7     833.5     870.4     907.2     944.0     980.8    1017.6  
     4	   1079.9    1116.2    1152.5    1188.8    1225.1    1261.4    1297.7    1334.0    1370.3  
     5	4.705E+03 4.705E+03 4.698E+03 4.691E+03 4.684E+03 4.677E+03 4.670E+03 4.663E+03 4.656E+03 4.648E+03
     6	 4.643E+03 4.637E+03 4.631E+03 4.625E+03 4.619E+03 4.613E+03 4.607E+03 4.600E+03 4.594E+03
     7	 4.587E+03 4.581E+03 4.574E+03 4.568E+03 4.561E+03 4.554E+03 4.547E+03 4.540E+03 4.533E+03
     8	 4.527E+03 4.521E+03 4.515E+03 4.509E+03 4.503E+03 4.497E+03 4.491E+03 4.485E+03 4.479E+03

$ wc -l < brol 
8


;-((

J'ai modifié le fichier "brol" (en fic) avec une commande "sed" et la solution qui t'a été donné marche trsè bien :

$ paste <(head -1 fic| tr -s ' ' '\n') <(tail -1 fic| tr -s ' ' '\n')
0	4.705E+03
1E-20	4.705E+03
39.6	4.698E+03
79.2	4.691E+03
118.9	4.684E+03
158.5	4.677E+03
198.1	4.670E+03
237.8	4.663E+03
277.4	4.656E+03
317.0	4.648E+03
385.7	4.643E+03
421.4	4.637E+03
457.1	4.631E+03
492.8	4.625E+03
528.5	4.619E+03
564.2	4.613E+03
599.9	4.607E+03
635.6	4.600E+03
671.3	4.594E+03
723.1	4.587E+03
759.9	4.581E+03
796.7	4.574E+03
833.5	4.568E+03
870.4	4.561E+03
907.2	4.554E+03
944.0	4.547E+03
980.8	4.540E+03
1017.6	4.533E+03
1079.9	4.527E+03
1116.2	4.521E+03
1152.5	4.515E+03
1188.8	4.509E+03
1225.1	4.503E+03
1261.4	4.497E+03
1297.7	4.491E+03
1334.0	4.485E+03
1370.3	4.479E+03

0
Dan_NB Messages postés 9 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 17 août 2013
16 août 2013 à 21:46
Salut,

merci pour la réponse. Pour ce qui est du nombre de ligne, j'ai justement utilisé un script sell dont le but est de mettre l'ensemble des lignes de mon document à la suite de la 1ière ou 2ième ligne et donc théoriquement j'arrive bien à 2 lignes. Voici le script shell en question :
#n
1 h                                    
n                                      
:z                                     
x                                      
N                                      
$ !b z                                 
s/\n/ /g                               
x                                      
s/\n/ /g                               
G                                      
p


Pourais je te demander la modification que tu as effectué à l'aide de la commande shell pour obtenir 2 lignes stp ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
16 août 2013 à 22:23
sed 'N;N;N;s/\n/ /g' brol > fic 
0
Dan_NB Messages postés 9 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 17 août 2013
17 août 2013 à 18:38
merci ;)
0