파일이 있고(아래 참조) 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