我有一个大的制表符分隔文件(dummy.vcf),其列为';'定界变量。例如:
AF_female=0.00000e+00;non_topmed_AF_female=0.00000e+00;control_AF_female=0.00000e+00
control_AF_female=0.00000e+00;non_topmed_AF_female=0.00000e+00
AF_female=0.00008e+00;non_topmed_AF_female=0.00000e+00
我想为填充有缺失值的每一行提取“ AF_female = X”字符串,因此新文件的长度与原始文件的长度相同。例如:
AF_female=0.00000e+00
NA
AF_female=0.00008e+00
我尝试过:
grep -o ';AF_female=[0-9].[0-9]*..[0-9]*' dummy.vcf
但是,当模式不匹配时,这不会添加行。
任何帮助将不胜感激!
答案 0 :(得分:0)
如果您对Select concat(REFNO_PFIX,'00',REFNO_SERL) as EventName,CROSS_REF from tizone1.baseevent where concat(REFNO_PFIX,'00',REFNO_SERL) not in ( SELECT baseevent.CROSS_REF from tizone1.baseevent as ta left join tizone1.baseevent as lta on ta.EventName = lta.CROSS_REF group by master_key );
表示满意,请尝试遵循。
awk
它应该检查一行中awk -F';' '
{
val=""
for(i=1;i<=NF;i++){
if($i ~ /^AF_female=[0-9]+/){
val=(val?val OFS $i:$i)
}
}
if(val){
print val
}
else{
print "NA"
}
}' Input_file
的所有当前值,并在行中也找到NULL匹配的情况下打印AF_female=digits
。
输出如下。
NA
说明: 立即添加上述命令的说明。
AF_female=0.00000e+00
NA
AF_female=0.00008e+00