O comando do núcleo que você deseja deve, se eu entendi corretamente, conta cada ocorrência da palavra pesquisada. Assumindo o GNU grep:
<"$file" grep -Fwo -- "$word" | wc -l
A opção -F
alterna para a correspondência de seqüência de caracteres não-regular e não-regular. %código%
faz uma pesquisa de palavras, como na sua pergunta, e -w
imprime cada correspondência
sozinho, em sua própria linha, resultando na contagem adequada sendo emitida por
-o
.
Agora, sobre o prompt, você pode aproveitar o fato de que o bash
wc -l
tem uma opção read
:
read -p 'Filename: ' file
read -p 'Word: ' word
A atribuição assume o formato -p
, sem sinal de dólar ou
espaços ao redor do sinal de igual:
count=$(grep-command)
Finalmente, você pode aproveitar a interpolação de string ao escrever sua saída:
echo "File '$file' contains this many occurrences of '$word': $count."