タブ区切りのデータセットを処理するためにコードを修正する際に助けが必要です。例のデータは:awk配列の要素の数のパターンが一致します
#ID type
A 3
A Ct
A Ct
A chloroplast
B Ct
B Ct
B chloroplast
B chloroplast
B 4
C Ct
C Ct
C chloroplast
列#1の各固有の要素について、パターン「Ct」に一致する要素と一致しない要素を数えたいと思います。 だから、期待される出力が
#ID count_for_matches count_for_unmatched
A 2 2
B 2 3
C 2 1
である私は、パターンにカウントを取得することができ、この
awk '$2~/Ct/{x++};$2!~/Ct/{y++}END{print x,y}
と一致したと私は
のような配列としてのカラム#1を定義することにより、各項目の処理を行うことができます知っていますawk '{a[$1]++}END{for (i in a) print i}'
しかし、両方の機能コードを組み合わせることはできません。私は
awk '{a[$1]++}END{for (i in a){$2~/Ct/{x++};$2!~/Ctt/{y++}}END{print i,x,y}}}'
のようないくつかの組み合わせを試してみました。しかし、私は明らかにいくつかのエラーを作っていますし、この問題を解決するためにどのように答える私はフォーラムに基づいて把握することはできません。おそらく$ 2の値は[$ 1]で保存する必要がありますか?誰かがエラーを指摘できれば感謝します!ここ