我有一个包含 177 列和 54248 行的 CSV 文件,如下所示:
SNP_Name,Chr,Coordinate,R921B12,R921C12,R921D12,...
CL635944_160.1,0,0,CC,CC,CC,...
CR_594.1,0,0,TT,TT,TT,...
CR_816.1,0,0,CC,TT,TT,...
我需要一个包含 54284 列和 177 行的制表符分隔文件,如下所示:
R921B12 C C T T C C ...
R921C12 C C T T T T ...
R921D12 C C T T T T ...
以下命令允许我转置单列(数字 3)
awk '{ printf( "%s ", $3); } END { printf( "\n" ); }' a.csv
但是我怎样才能为他们所有人做到这一点呢?
最佳答案
一次扫描输入文件一行,将包含行号、字段号和字段数据内容的每一行和字段写入临时文件。正如所写,临时文件将按行内的字段排序。对临时文件进行排序,使其按字段内的行排序,然后扫描临时文件并按所需顺序重建输出。
关于csv - 如何转置大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51382286/