3 votes

Fusionner plusieurs fichiers texte de longueur différente

J'ai plusieurs fichiers avec un format simple comme

File1   File2   File3
|1|     |2|     |4|
        |3|     |5|
                |6|

Tous les fichiers ont une longueur différente. J'essaie d'obtenir le résultat suivant :

|1,2,4|
|,3,5 |
|,,6  |

Ainsi, chaque ligne de la sortie contient chaque ligne des fichiers d'entrée équivalents avec une virgule comme délimiteur.

Exécutez la commande suivante

paste -d',' input1 input2

pour deux fichiers d'entrée donne la sortie appropriée ci-dessus. Cependant, l'exécution de la commande pour trois fichiers d'entrée donne le résultat suivant

|1,2|
|,4 |
|,3 |
|,5 |
...

Pourquoi la commande pour deux fichiers échoue-t-elle avec trois fichiers ou plus ?

1voto

bishop Points 3309

Rapide et sale :

$ cat file1
|1|
$ cat file2
|2|
|3|
$ cat file3
|4|
|5|
|6|
$ paste -d ',' file[123] | sed -e 's/|//g' -e 's/^/|/g' -e 's/$/|/g'
|1,2,4|
|,3,5|
|,,6|

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X