파일에서 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

관련 정보