-2

私たちのファイルはsamtoolsで表示されています。その2列目だけをつかむ必要があるので

./samtools view mybamfile.bam | awk '{ print $2 }' > output.txt

あなたはそれがうまくいかなかったと思うでしょう..awkが良いオプションではない場合、私のファイルmybamfile.bamの2番目の列だけを取得するようにクエリするにはどうすればよいですか?

4

2 に答える 2

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でテスト済み。

于 2012-06-18T04:11:00.357 に答える
0

awk はデフォルトでフィールドセパレーターをタブとして使用するため、フィールドセパレーターが実際にタブである場合、コマンドは機能するはずです。あなたが試すことができるかもしれません:

./samtools view mybamfile.bam |cut -f2 -d'\t'
于 2012-06-18T05:53:48.493 に答える