Ama*_*nga 4 awk text-processing bioinformatics
常规文件包含按列组织的数据,以空格分隔。根据第二个字段的值,我想将该初始数据文件拆分为几个其他文件。
数据文件有 54,242 行和 399 列。数据结构是这样的:
SNP Chr Pos ID_01 ID_02 ...
rs01 1 200 AA BB ...
rs02 25 10 BA AA ...
rs03 1 30 AA BB ...
rs04 X 90 BB AA ...
Run Code Online (Sandbox Code Playgroud)
我的输出应包含与第2 列file"${chr}"
中的不同$chr
值一样多的每条记录(或行)。例如:
file1将包含其第二个字段为的所有记录1
:
SNP Chr Pos ID_01 ID_02 ...
rs01 1 200 AA BB ...
rs03 1 30 AA BB ...
Run Code Online (Sandbox Code Playgroud)
file25将包含其第二个字段为的所有记录25
:
SNP Chr Pos ID_01 ID_02 ...
rs02 25 10 BA AA ...
Run Code Online (Sandbox Code Playgroud)
等等...
与awk
:
awk 'FNR==1 { hdr = $0; next }
{
if(!f[$2]) { print hdr >"file" $2; f[$2] = 1 }
print >>"file" $2
}' data.txt
Run Code Online (Sandbox Code Playgroud)