Ecrire tableau de plusieurs fichiers dans un

Boylan -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaiterais créer un fichier qui rejoint tout les tableaux que j'ai dans plusieurs autre fichier. Je m'explique avec un exemple:

J'ai plusieurs fichier de ce style (en plus long bien sur):

fichier1.txt:
1 0.2316 0.003645
2 3.2126 0.000896
3 2.6589 0.003784

fichier2.txt:
9 2.3654 0.001478
18 6.3112 0.014253
27 1.2658 0.014296

Je voudrais en résultat:
1 0.2316 0.003645 9 2.3654 0.001478
2 3.2126 0.000896 18 6.3112 0.014253
3 2.6589 0.003784 27 1.2658 0.014296

J'essaie de faire ça avec UNIX, avec les commandes style sed et compagnie mais je n'y arrive pas. Je sais que c'est possible de tout mettre a la suite très facilement mais je préfererais avoir un résultat en colonne histoire de passer le fichier dans excel après.

Merci,

2 réponses

  1. Boylan
     
    J'ai écrit ça, ça m'aide mais qu'est-ce que c'est lent!!!
    Et pour 3000 lignes en plus !!! Sachant que je vais avoir probablement plus de 5 fichiers a traiter et ptetre des fichiers ayant plus de ligne. Bref, help !

    NOUT=$1.txt
    rm $NOUT
    touch $NOUT

    class=3000/result_c.light.$NOUT
    str3=strat3/result_s.light.$NOUT
    str5=strat5/result_s.light.$NOUT
    str7=strat7/result_s.light.$NOUT
    str9=strat9/result_s.light.$NOUT

    i=1
    while test $i -le 3000
    do

    echo $i

    line1='head -$i $class | tail -1'
    line2='head -$i $str3 | tail -1'
    line3='head -$i $str5 | tail -1'
    line4='head -$i $str7 | tail -1'
    line5='head -$i $str9 | tail -1'

    echo $line1 $line2 $line3 $line4 $line5 >> $NOUT
    i=$(($i + 1))

    done
    tr -d "\r" < $NOUT > fich.tmp
    mv -f fich.tmp $NOUT
    0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Avec Unix et ses outils, ça devrais le faire assez facilement.
    https://forums.commentcamarche.net/forum/affich-1360738-bash-recuperer-une-ligne-particuliere
    pour récupérer une boucle particulière

    http://unixhelp.ed.ac.uk/CGI/man-cgi?wc
    pour connaitre le nombre de ligne dans chaque fichier

    Ensuite, une boucle for et un echo $filea $fileb>>resu
    devrais donner ce qu'il faut.
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      J'ai trouvé ce que je cherchais :
      https://tldp.org/LDP/abs/html/internal.html#READREDIR
      En utilisant "read" tu dois pouvoir faire quelque chose de pas mal.
      Ou plus moche :
      sdiff file1 file 2> resu.txt (reste à supprimer les caractères inutiles de sdiff)
      0