计算文件中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,需要两个命令:

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

相关内容