ファイル内の0と1の数を計算します。

ファイル内の0と1の数を計算します。

ファイルがあり(下記参照)、1と0の数を数えたいです。

1
1
1
0
0
1
1
0
0
0
...

awkを使ってみましたが、うまくいきません。たとえば、1の数を数える操作は次のとおりです。

awk -F "1\n" '{print NF-1}'

どうすればいいですか?

ファイルには1と0のみが含まれており、各行は数字だけであるとします。しかし、ファイル内の特定の行の発生回数を数える場合に一般化する方法を知りたいです。

答え1

計算で1と0の数を数えますfilename

$ sort <filename | uniq -c
      5 0
      5 1

答え2

そしてawk

awk '/0/{zero++} /1/{one++} END{printf "0: %d\n1: %d\n", zero, one}' filename

を使用するには、grep次の2つのコマンドが必要です。

grep -c 1 filename
grep -c 0 filename

完全な行を含む文字列の場合:

grep -cFx 'target string' filename

おそらく、文字列に正規表現で特別な意味を持つ文字を含めることができるので、を使用して行全体が一致する必要があることを指定する必要があり-Fます-x

awkを使用してください:

awk '$0 == "target string" {count++} END {print count}'

答え3

0以外のすべての項目を削除し、文字数を印刷します。

tr -cd 0 < file | wc -m

出力:

5

答え4

エド! !人編集者:

$ ed -s file <<EOT
g/0/d
n
u
g/1/d
n
EOT

13  1
17  0

関連情報