chr10 10482 10484 0 11 + CA
chr10 10486 10488 0 12 + ca
chr10 10487 10489 0 13 + Ca
chr10 10490 10492 0 13 + cA
chr10 10491 10493 0 12 + CT
chr10 10494 10496 6.66667 15 + ca
chr10 10495 10497 6.66667 15 + cc
Iは「CA」は関係なく、大文字または小文字にされている2つの文字の任意の見出すことができる列7の行数をカウントしたいです。
所望の出力が5
2つのコマンドは(下記)は、以下のコマンドは1
awk 'BEGIN {IGNORECASE = 1} END {if ($7=="CA"){++count} {print count}}' table
注の値を返す
cat table | awk ' $7 ==/^[Cc][Aa]/{++count} END {print count}'
awk 'BEGIN {IGNORECASE = 1} $7==/"CA"/ {++count} END {print count}' table
空出力を与えるであろう。私実際のテーブルは何千万もの行になっているので、カウントするために中間テーブルとしてテーブルを作成したくありません。 (私は他のファイルに対してもこの作業を繰り返す必要があります)。
IGNORECASEはGNU awk(gawk)の機能であり、他のawk実装では利用できません。 – ghoti
また、 'grep -c -w -i 'ca $' table'は十分ではありませんか?あるいは、あなたのカウント以外にawkスクリプトに他の機能を組み込んでいますか? – ghoti