Если у вас есть строковая переменная, в которой вы хотите найти другую строку, используя grep, сначала введите строку в stdout, затем используйте grep, как в командной строке с каналами.
var = match
cat list.txt | while read word_from_list
do
echo "$word_from_list" | grep "$var" >> words_found.txt
done
или совершить действие в матче
if [ -n "$(echo "$word_from_list" | grep "$var")" ]
then
echo "$var" >> vars_found.txt
fi
Не забудьте , чтобы тщательно процитировать переменную, которую вы отправляете на стандартный вывод. Забыв о кавычках, вы исключите любые разрывы строк в строке (ложные срабатывания). Использование одинарных кавычек предотвратит замену переменной на ее значение.