1

ファイル内の単語数を数え、ファイル内のすべての単語を連想配列のキーとして使用しようとしています。値は単語の出現回数である必要があります。

while read line; do
  ((occs["$line"]=${occs[$line]}+1))
done < $predfile

ここでの問題は、ファイルに * (スター) が含まれる可能性があることです。このスターを単語として扱いたいと考えています。ただし、単語の出現を出力したい場合は

for i in "${!occs[@]}"
do
  echo "$i : ${occs[$i]}" >> $resultfile
done

その後、bash はスターに到達すると ${occs[*]} を出力しようとし、「occs[*]: bad array subscript」が表示されます。これを処理するために if ステートメントを使用できますが、配列キーをエスケープされたキーで埋めることができるかどうかを知りたいです。

4

1 に答える 1