私は、ユーザーが入力した単語がファイルに何回表示されるかをユーザーに知らせたいプログラムを持っています。これまでに書いた内容ですが動作しません。
#! /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."