答案1
您尝试的问题在于您只是将输入文件每一行的前 6 列打印到标准输出。如果任何给定行中的列数较少,awk
则将缺少的列解释为“空”,因此第七行的输出实际上应该类似于
chr1 \t 290338 \t 290378 \t NS500455:80:HG7TMBGXB:$:13404:14651:1128 \t + \t \n
(为了可读性添加了周围的空格\t
;注意末尾的“空”列)。
为了根据列数过滤掉格式错误的行,您可以尝试
awk -F'\t' -v OFS='\t' 'NF==6' file.txt > output.txt
它只会打印那些有 6 个字段(=列)的行。