주어진 단어에서 가장 자주 사용되는 글자 찾기 [중복]

주어진 단어에서 가장 자주 사용되는 글자 찾기 [중복]
Input = 'RaamKuumabbbb'
Output = b

b는 문자열 A='RaamKuumabbbb'에 4번 나타납니다.

답변1

이 시도

 Input='RaamKuumabbbb'
 output=(`echo $Input | grep -o . | sort | uniq -c | sort -nr | head -n1`)

 echo ${output[1]} appeared ${output[0]} times in the string $Input

답변2

펄 사용:

$ echo 'RaamKuumabbbb' | perl -pe 'map{$c{$_}++}split(//,$_);$_=[sort{$c{$b}<=>$c{$a}}keys(%c)]->[0]'
b

(출력 끝에 개행 문자가 없습니다)

Perl을 사용하여 주어진 문자열에서 각 문자의 발생 횟수를 계산한 다음 결과 해시를 발생 내림차순으로 정렬하여 가장 일반적인 문자를 추출합니다.

일부 정렬 후의 Perl 스크립트:

# split string ($_) into individual characters
# count the number of occurrences of each in the hash %c
map { $c{$_}++ } split( //, $_ );

# sort the keys of %c (the characters) by 
# decreasing number of occurrences (the values)
# and pick out the first key
$_ = [ sort { $c{$b} <=> $c{$a} } keys(%c) ]->[0];

이 옵션은 Perl이 코드를 실행한 후 -p무엇이든 출력하도록 프롬프트합니다.$_

각 문자 수를 얻으려면 다음을 수행하십시오.

$ echo 'RaamKuumabbbb' | perl -pe 'chomp;map{$c{$_}++}split(//,$_);$_=join "\n",map{"$c{$_}:$_"}sort{$c{$b}<=>$c{$a}}keys(%c)'
4:b
3:a
2:m
2:u
1:R
1:K

답변3

단어가 파일에 있으면 text.txt라고 말한 다음 사용할 수 있습니다.

  sed 's/\(.\)/\1\n/g' text.txt | sort| uniq -c | sort -nr  |  head -n 1

각 문자 사이에 새 줄을 추가한 다음 중복 항목을 제거하고 내림차순으로 정렬한 다음 최대 발생 횟수인 첫 번째 항목을 제공합니다.

또는 다음을 사용할 수 있습니다.

echo "RaamKuumabbbb" | sed -E 's/(.)/\1\n/g' | sort |  uniq -c | sort -nr  |  head -n 1

위의 두 명령 모두 출력을 다음과 같이 사용합니다 . 출력 4 b만 원할 경우 출력을 다음과 같이 파이프합니다.bawk '{ print $2 }'

echo "RaamKuumabbbb" | sed -E 's/(.)/\1\n/g' | sort|  uniq -c | sort -nr  |  head -n 1 | awk '{ print $2 }'

답변4

echo  RaamKuumabbbb  |
perl -lpe '
  $h{$_}++ for /./g;
  ($_) = reverse map { $h{$_} > $m and ($m,$i)=($h{$_},$_);$i } keys %h;
'

또는 값에 대해 역수 정렬을 사용하여 %h가장 높은 값을 얻을 수 있습니다 $_.

perl -lpe '
  $h{$_}++ for /./g;
  ($_) = sort { $h{$b} <=> $h{$a} } keys %h;
'

피복재:

  • 먼저 해시 %h를 채웁니다. 키는 정규식을 통해 얻은 입력 문자열의 각 문자이고 /./g값은 입력 문자열에 해당 문자가 나타나는 횟수입니다.
  • 그런 다음 문자열의 개별 고유 문자인 해시 키를 반복합니다. 각 반복에서 우리는 카운트의 최대값을 찾고 해당 문자를 기록하려고 합니다.
  • 마지막 문자는 $_에 저장된 다음 암시적으로 에 저장됩니다 stdout.

관련 정보