细胞之间的AWK间隙

时间:2013-10-21 11:41:27

标签: string bash text awk gaps-in-data

我有问题,请你能帮帮我吗? 我有.txt文件我使用awk代码使用制表符分隔函数分隔列。 我收到对齐列,但是如果缺少某些信息,整行会向左转,信息会转移到另一列。你能帮帮我吗?我怎么能 合并到这个代码?非常感谢你..

#!/bin/bash

for f 
in *.vcf; 
do awk 'BEGIN {OFS = "\t"}
        /^##/ {next}
        /^#/ {sub(/^#/,"",$1)}
        {$1=$1; print}
    ' "$f" > "${f/%vcf/tsv}"
done


> INPUT:
> 
> CHROM    ID    REF   ALT 
  chr1    235     A     B 
  chr2     A      B
  chr3    225     B
  

输出:

  CHROM    ID   REF   ALT  
  chr1    235    A     B 
  chr2     .     A     B 
  chr3    225    .     B

1 个答案:

答案 0 :(得分:2)

问题包含歧义。查看数据:

chr1    235     A     B 
chr2     A      B
chr3    225     B

也许在chr2行中,我们可以猜测ID列缺失,因为ID是数字。我们缺少一列,它是数字列,因此它必须是ID

但在第三行中,我们如何知道缺少REF列,而不是ALT

如果永远不会遗漏ALT,那么这很简单。但如果其中任何一个都可能丢失,那可能是不可能的。

在任何情况下,在编写程序代码以将数据重新规范化为正确的列之前,您必须能够明确规定哪些列缺失,或者认识到它是不可能的并放弃。< / p>

您可能只需要上游并找到更好的相同数据源,而这些数据没有带有列的列。