我有一个很大的制表符分隔文件,其中每一列都是一个患者,每一行显示特定位置的基因型,其中缺失的数据用 ./ 表示。 我想提取在任何位置包含缺失基因型的列的列标题。
示例:
Variant P_1 P_2 P_3
var_1 0/0 ./. 1/0
var_2 ./. ./. 0/0
var_3 1/0 ./. 1/0
预期产量
P_1
P_2
我尝试过-不成功:
code=$(
awk '{for (i=1; i<=NF; i++)
if ($i == "./.") {printf NR==1, sep "\n"}
}' file
) &&
awk "{print $code}" file
如有任何建议,我会很高兴!
将标题保存为第一个记录中的数组,然后保存后续记录中出现
./.
的列索引。最后,根据保存的列索引输出标题项:
awk '
NR==1 {split($0,h); next}
{for (i=1; i<=NF; i++) if ($i == "./.") a[i]}
END {for (i in a) print h[i]}
'
P_1
P_2