Convertir des lignes en colonnes

Résolu
Dan_NB Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
Dan_NB Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
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 !

1 réponse

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 431
 
sed 'N;N;N;s/\n/ /g' brol > fic 
0
Dan_NB Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
merci ;)
0