Aspas simples não permitem expansão de variável. Assim, '$1'
será um literal $1
. Em vez disso, você quer aspas duplas. Veja esta entrada na wiki sobre citações para mais.
$ foo=test
$ grep "\<$foo\>" file1
test
Observe que <\
e \>
também podem ser substituídos por limites de palavras:
$ grep "\b$foo\b" file1
test
Você também não precisa cat
de um arquivo para grep
- ele pode ler um arquivo sozinho.