![计算文件中0和1的数量](https://linux22.com/image/63622/%E8%AE%A1%E7%AE%97%E6%96%87%E4%BB%B6%E4%B8%AD0%E5%92%8C1%E7%9A%84%E6%95%B0%E9%87%8F.png)
我有一个文件(见下文),我想计算 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