숫자에서 특정 숫자의 반복 찾기 [닫기]

숫자에서 특정 숫자의 반복 찾기 [닫기]

예를 들어, 내 입력은 입니다 . 숫자의 반복 횟수를 12451가져와야 합니다 .1

답변1

GNU 사용 grep:

$ echo 12451 | grep -o . | grep -c 1
2

GNU 사용 awk:

$ echo 12451 | gawk -v num=1 'BEGIN { FS = "" } {for (i = 1; i <= NF; i++) if ($i == $num) count++ } END {print $count}'
2

POSIX awk를 다음과 같이 사용하세요.이 댓글에 제안해주세요:

$ echo 12451 | awk '{print gsub(/1/,"")}'
2

답변2

그리고 zsh:

$ string=12451
$ echo ${#string//[^1]}
2

답변3

데이터가 표준 입력(예: Piped echo)에 도착한다고 가정합니다.

LC_ALL=C tr -d -c '1' | LC_ALL=C wc -c

존재하지 않는 문자를 모두 제거한 1다음 남은 문자 수를 계산합니다.

데이터가 쉘 변수에 저장되어 있다고 가정합니다 . value예를 들면 다음과 같습니다 .bash

ones=${value//[\!1]/}; echo "${#ones}"

이것은 실제로 첫 번째 명령과 동일한 작업을 수행합니다. 1값에서 문자가 아닌 모든 항목을 제거하고 $value결과 문자열을 새 변수에 할당 ones하고 문자열 길이를 인쇄합니다.

답변4

grep과 wc를 사용하여 줄 수를 계산하는 또 다른 방법은 다음과 같습니다.

grep -o '1' <<< 12451 | wc -l

관련 정보