ファイルを繰り返して各文字の発生回数を数えるにはどうすればよいですか?

ファイルを繰り返して各文字の発生回数を数えるにはどうすればよいですか?
function count{
  declare -a array 

  for((i=0; i<256;i++)); do
    ${array[$i]}=0
  done

  while read line_in; do
    ((line_num++))

    ...(Code Needed)

    if [ $line_num == 100 ]; then 
      break
    fi
  done < "${path_in}"
(Code needed to print the counts)

ファイルの各行を繰り返し、特定の文字の発生回数を数えて印刷してこの機能を実行するにはどうすればよいですか?

テキストファイルがある場合は、ファイルを繰り返し、各行ごとに各ASCll文字の発生回数を数えて配列に保存したいと思います。次に、配列内の各要素の数を出力します。大文字と小文字は同じように扱われます。

入力する:

Hello 
world 

予想出力:

D:1
H:1
E:1
L:3
O:2
R:1
W:1

ベストアンサー1

私は次のようなものを選択します。

grep -o . file | sort | uniq -c

  1 d
  1 e
  1 H
  3 l
  2 o
  1 r
  1 W

または、大文字と小文字を単一文字として扱う場合:

grep -o . file | sort | uniq -ic | tr [:lower:] [:upper:]

  1 D
  1 E
  1 H
  3 L
  2 O
  1 R
  1 W

| tr [:lower:] [:upper:]予想される出力にすべて大文字を印刷するオプションがあります。

おすすめ記事