我们的文件已与samtools一起查看。我只需抓住第二列,所以我做了
./samtools view mybamfile.bam | awk '{ print $2 }' > output.txt
你会猜测那不起作用..如果awk不是一个好的选择,我应该如何查询只获取第二列我的文件 mybamfile.bam 我愿意尝试其他任何东西!
答案 0 :(得分:2)
我认为./samtools view view mybamfile.bam
的输出是制表符分隔的,因此应将AWK的字段分隔符设置为制表符(-F'\t'
)以获取第二列。
尝试此命令:
./samtools view mybamfile.bam | awk -F'\t' '{ print $2 }' > output.txt
选项卡作为分隔符:
如果未指定字段分隔符,AWK将在“空格”(例如空格和制表符)上拆分,使用-F'\t'
确保它仅在选项卡上分割 ,而不是空格。这会在包含空格和制表符的文件中产生差异。 E.g,
irene adler john moriarty
frank pempleton tim bayliss
假设每行上的两个名称之间有一个标签。如果标签字符不指定为字段分隔符,AWK将在每行中看到 4 字段,第2列将包含adler
和pempleton
。如果将 标签指定为字段分隔符,则AWK只会在每一行上看到 2 字段,而第2列将包含john moriatry
和tim baylis
。
在Linux下使用GNU Awk 3.1.6进行测试。
答案 1 :(得分:0)
awk默认将字段分隔符作为tab.so如果字段分隔符确实是一个选项卡,那么你的命令应该可以工作。 也许你可以试试:
./samtools view mybamfile.bam |cut -f2 -d'\t'