2

ファイルの2番目の列が以下の数値のいずれかに等しい場合:

65,81,83,97,99,113,129,145,147,161,163,177     #To be read 65 OR 81 OR 83 OR 97 OR 99 etc..

次に、行全体を出力ファイルに出力する必要があるため、次のように入力します。

samtools view myfile.bam | awk '{for (i=65,81,83,97,99,113,129,145,147,161,163,177) if ($2==i) ; print$0} > output.bam

それはうまくいくでしょうか?

4

2 に答える 2

4

ブロックdict内の数値のリストを含むを作成できます。 次に、フィルターとして使用します。BEGIN
dict

awk '
BEGIN {
    dict[65]
    dict[81]
    # skip
    dict[177]
}
$2 in dict' file.txt
于 2012-06-18T08:07:09.890 に答える
1

多くの明示的な割り当てではなく、長いリストがある場合:

awk 'BEGIN {
    numlist = "65,81,83,97,99,113,129,145,147,161,163,177"
    split(numlist, a, ",")
    for (i in numlist) {
        nums[a[i]]
    }
}
$2 in nums' inputfile
于 2012-06-18T09:44:32.363 に答える