1

I face a large text file with which contains space delimited numbers, ranging from 0-9. Each line contains 3207 numbers and the file consists of 4611769 lines. I want to transpose this file.

Input example :

9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 29 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 29 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9 2 0 2 2 2 2 9 2 2 2 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 9 2 2 2 2 2 0 2 1 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 9 2 2 1 1 0 2 2 2 2 2 1 2 2 9 2 2 9 2 2 2 2 2 2 1 2 2 9 2 2 2 2 2 2 9 2 1 1 2 9 2 2 9 2 2 2 2 2 1 2 2 2 9 2 2 2 2 9 9 2 2 2 2 2 2 2 2 2 2 2 9 2 9 2 2 2 2 2 9 2 2 1 9 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
...

I already tried this awk-solution : awk '{for (i=1; i<=NF; i++) a[i]=a[i](NR!=1?FS:"")$i} END {for (i=1; i in a; i++) print a[i]}' which I found here.

I chose an awk-solution due to this similar question where one user already benchmarked different solutions.

This operation runs now for more than 24 hours and I'm curious if there is by chance any other way in any possible language to achieve the same result in less computational time.

Q: What is the fastest way to transpose such a file?

EDIT I: The large amount of possible answers in this similar question is an argument to not see this question as an duplicate. The simple datamash answer as suggested in the comments should help less experienced users with bash to find the answer to this question more easily.

mugdi
  • 365
  • 5
  • 17
  • How much RAM do you have? – Dada Jan 05 '23 at 09:20
  • I have 128GB RAM and a 550 GB swapfile. – mugdi Jan 05 '23 at 09:25
  • 1
    The `awk` solution you use and the ones presented in [the similar question](https://stackoverflow.com/questions/1729824) are very different. Your solution is by far less efficient as you constantly rewrite memory. There are other solutions presented in the same question, example is `datamesh` which is for sure very efficient. – kvantour Jan 05 '23 at 09:25
  • Also, that is a 28Gb file you are talking about. Are you sure you need to transpose it? If you need to operate on it, I would convert it into a binary format file which could be used as a lookup table and much faster than processing ascii tables – kvantour Jan 05 '23 at 09:28
  • Alright. I will give `datamash`a try then! – mugdi Jan 05 '23 at 09:28
  • @kvantour Sadly, I can't use something like a lookup table or some index switching. This new file is needed as an input for another algorithm and this only accepts this transposed format as a text file ): – mugdi Jan 05 '23 at 09:31
  • https://www.gnu.org/software/datamash/manual/datamash.html#Reverse-and-Transpose – Inian Jan 05 '23 at 09:36
  • 1
    This helped to anwer my question but only after people here suggesting `datamash` instead of the most upvoted answer in the question, which I also mentioned in my question. I would like to write a one-liner for `datamash` and post this here as answer. I would argue that people, like me, get easily confused by the large amount of answers from the most upvoted answer, despite the probably best solution with `datamash` is not mentioned. – mugdi Jan 05 '23 at 11:20
  • 3
    When you explore on StackOverflow, the most up-voted answer and accepted answer is not always the best answer. In this particular case, the awk answer is very generic for small things and does not need a lot of tinkering, but in your particular case, `datamash` or even the C-code listed down are the best solutions. The reason this has been duped is because this question would not give any additional value to the existing question. I strongly recommend to upvote the answer you found useful and even comment on it that this fitted your needs for a 28Gb file. – kvantour Jan 05 '23 at 14:24
  • Furthermore, the `datamash` answer is listed down [the similar question](https://stackoverflow.com/questions/1729824) together with various other solutions. – kvantour Jan 05 '23 at 14:25
  • Alright will do that. – mugdi Jan 05 '23 at 16:11

1 Answers1

2

As mentioned in the comments by @kvantour and @Inian datamash seems to be the way to go. This one-liner should solve the question:

datamash transpose -t ' ' < input.txt > output.txt
mugdi
  • 365
  • 5
  • 17
  • 1
    It's absolutely OK to accept your own answer, as well (if you find it to be the best one, what is clearly the point here). Need to [wait for 48 hours](https://stackoverflow.com/help/accepted-answer) in order to do that. – zdim Jan 06 '23 at 00:59
  • 1
    You can optionally post performance results to your answer upon using each of the tool, e.g. datamash, awk or perl – Inian Jan 06 '23 at 12:06