Isso funciona!
function fndg()
{
find . -name "$1" | xargs grep -rn --color "$2"
}
Eu defini o seguinte alias em ~/.bashrc
:
alias fg='find . -name $1 | xargs grep --color $2'
para escrever
fg "*.txt" " my_text "
e encontre todos os arquivos que tenham extensão .txt e contenham "my_text", mas isso não funciona. Por quê?
Aliases no bash não aceitam parâmetros (como já foi apontado), então quando você precisar de algo parecido, você pode usar funções bash (como a fornecida por @ l0b0).
Mas o que você está tentando alcançar aqui, pode ser feito de uma maneira melhor usando apenas o grep.
grep -r --color --include="*.txt" " my_text " ./
BTW, fg
é um shell construído em comando, um importante. Você deve evitar usá-lo como um nome para aliases ou funções.
EDIT: em uma função
$ ffg() { rgrep --color --include="$1" "$2" ./; }
$ ffg "*.txt" " my_text "
find ./ -name "$1" -exec grep -l "$2" {} \;
deve fazer o truque.