Если вам нужно, чтобы два слова были разделены , то есть если вы не хотите сопоставить abba
если одно из слов bb
, тогда используйте
grep "\\<$word1\\>.*\\<$word2\\>" "$filename"
Шаблон\<
(здесь \\<
для экранирования первой обратной косой черты из оболочки )соответствует непосредственно перед словом, и \>
работает аналогично, но сразу после слова.
Есть также \b
, которые соответствуют до и после, а также [[:<:]]
и [[:>:]]
, которые работают так же, как \<
и \>
. Какие из них реализованы grep
различаются.