我希望使用awk语句或python从长格式转换文件。
我的输入文件应该是这样的;
ID Chr_Position Geno
111 1_1234 0
111 1_12345 1
111 1_2345 0
111 2_23245 2
我需要的输出是(不一定需要标题)
ID 1_1234 1_12345 2_2345
111 0 1 0 2
112 1 1 1 1
113 1 1 0 2
它们是大文件,超过100000个ID,每行超过10000行,但如果需要可以拆分成更小的。
我以前的代码将换行和列,但不知道如何从长格式。
最佳答案
idk如何生成您发布的输出,给定您发布的输入文件,但这可能有助于您走上正轨:
$ cat tst.awk
NR==1 { next }
$1 != prev { if (line!="") print prev line; line=""; prev=$1 }
{ line = line OFS $NF }
END { if (line!="") print prev line }
$ awk -f tst.awk file
111 0 1 0 2