我有问题,请你能帮帮我吗? 我有.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
答案 0 :(得分:2)
问题包含歧义。查看数据:
chr1 235 A B
chr2 A B
chr3 225 B
也许在chr2
行中,我们可以猜测ID
列缺失,因为ID
是数字。我们缺少一列,它是数字列,因此它必须是ID
。
但在第三行中,我们如何知道缺少REF
列,而不是ALT
?
如果永远不会遗漏ALT
,那么这很简单。但如果其中任何一个都可能丢失,那可能是不可能的。
在任何情况下,在编写程序代码以将数据重新规范化为正确的列之前,您必须能够明确规定哪些列缺失,或者认识到它是不可能的并放弃。< / p>
您可能只需要上游并找到更好的相同数据源,而这些数据没有带有列的列。