1

正確なパターンを探すのに問題があります。この情報を含むファイルがあります:

GAT CCA AAA CAC ATT CTC CCT GGT AGC ATG GAC AAG CAA CAT TTT GGG AGA AAT GGA GCA AAA AAA CAT 
AAA CTT CAC AGT AAC AAA CAT AAA CAC TCT CTC TCT CTC TCT CTC TCT CTC TCT CTC TCT CTC TCT CTC 
TCT CTC TCT CCA CAC ACA CAC ACA CTC GCA CTC ACA GCC TCA CAA CAC AGG TAT ACA TGT TTA CTT AGG 

そして、たとえば、AWK を使用して GAT が表示される回数を数えようとしています。

awk -F " " '/AAC/ {++i} END {print "Count of TC is "i"."}'

正しい値よりも間違った高い値が返されます。私もやってみました:

awk -F " " '/^AAC$/ {++i} END {print "Count of TC is "i"."}'

しかし、それは私に何も与えません。つまり、「TC の数は です。」

なにか提案を?

4

1 に答える 1

1

すべてのフィールドをループでテストするか、レコード セレクターを使用して分割してからカウントする必要があります。

これを試してgnu awk

awk '/ACA/ {a++} END {print a}' RS='[[:space:]]+' file
4

awk '/AAA/ {a++} END {print a}' RS='[[:space:]]+' file
6

ループawkバージョン

awk '{for (i=1;i<=NF;i++) if ($i~/AAA/) a++} END {print a}' file
6

それを行う別の方法:

awk '{a+=gsub(/AAA/,x)} END {print a}' file
6
于 2013-11-08T09:48:24.190 に答える