私たちのファイルはsamtoolsで表示されています。その2列目だけをつかむ必要があるので
./samtools view mybamfile.bam | awk '{ print $2 }' > output.txt
あなたはそれがうまくいかなかったと思うでしょう..awkが良いオプションではない場合、私のファイルmybamfile.bamの2番目の列だけを取得するようにクエリするにはどうすればよいですか?
の出力はタブで区切られていると思います。そのため、2番目の列を取得するには./samtools view view mybamfile.bam
、AWKのフィールド区切り文字をタブ()に設定する必要があります。-F'\t'
次のコマンドを試してください。
./samtools view mybamfile.bam | awk -F'\t' '{ print $2 }' > output.txt
セパレータとしてのタブの再作成:
フィールドセパレータが指定されていない場合、AWKは「ホワイトペース」(スペースやタブなど)-F'\t'
で分割されます。を使用すると、スペースではなくタブでのみ分割されます。これにより、スペースとタブの両方を含むファイルに違いが生じます。例えば、
irene adler john moriarty
frank pempleton tim bayliss
各行の2つの名前の間にタブがあると仮定します。タブ文字がフィールドセパレータとして指定されていない場合、 AWKは1行に4つのフィールドを表示し、列2にはとが含まれadler
ますpempleton
。タブがフィールドセパレータとして指定されている場合、AWKは各行に2つjohn moriatry
のフィールドのみを表示し、列2はとで構成されますtim baylis
。
LinuxでGNUAwk3.1.6でテスト済み。
awk はデフォルトでフィールドセパレーターをタブとして使用するため、フィールドセパレーターが実際にタブである場合、コマンドは機能するはずです。あなたが試すことができるかもしれません:
./samtools view mybamfile.bam |cut -f2 -d'\t'