Bashスクリプトの単語数

Bashスクリプトの単語数

私は、ユーザーが入力した単語がファイルに何回表示されるかをユーザーに知らせたいプログラムを持っています。これまでに書いた内容ですが動作しません。

#! /bin/bash
echo "Enter the file that is to be searched (~/test/new)"
        read location
echo "Enter the search term"
        read search
$result = (grep -w "$search" $location | wc -w)
echo "The search term" $search "appears "$result" time/s in "$location

動作させるにはどうすればよいですか?

ベストアンサー1

私が正しく理解したら、必要なコアコマンドは、検索された単語が表示されるたびに計算する必要があります。 GNU grepを仮定すると:

<"$file" grep -Fwo -- "$word" | wc -l

-F非正規表現、逐語的文字列一致に切り替えるオプションです。-w あなたの質問のように単語検索を実行し、-o各一致を1行に個別に印刷すると、正しい数が表示されます wc -l

これで、プロンプトに関してbashを利用するオプションがreadあります。-p

read -p 'Filename: ' file
read -p 'Word: ' word

割り当ては、var=valueドル記号や等号の周りにスペースなしで形式を取ります。

count=$(grep-command)

最後に、出力を作成するときに文字列補間を利用できます。

echo "File '$file' contains this many occurrences of '$word': $count."

おすすめ記事