#!/bin/bash
if [ $# -eq 0 ]; then
echo "テキストファイルを指定してください。"
exit 1
fi
filename=$1
# 単語ごとの出現回数を格納する連想配列を作成
declare -A word_count
# テキストファイルを読み込み、単語の出現回数を計算
while read -r word; do
word_count["$word"]=$(( ${word_count["$word"]} + 1 ))
done < "$filename"
# 結果を表示
for word in "${!word_count[@]}"; do
echo "$word: ${word_count["$word"]}"
done
上記のスクリプトでは、まず引数の数をチェックしています。引数が与えられていない場合はエラーメッセージを表示して終了します。引数が与えられた場合は、最初の引数をfilename
変数に格納します。
その後、declare -A word_count
を使用して、連想配列word_count
を作成します。この連想配列は、単語をキーとし、その単語の出現回数を値として保持します。
次に、while
ループを使用してテキストファイルを読み込みます。各行の単語ごとに、word_count
の対応するエントリをインクリメントします。
最後に、for
ループを使用してword_count
の内容を表示します。各単語とその出現回数が表示されます。
このスクリプトを使用するには、ターミナルで以下のように入力します:
bash script.sh テキストファイル名.txt
ここで、script.sh
はスクリプトの保存されているファイル名であり、テキストファイル名.txt
は解析するテキストファイルの名前です。