grep
não tem uma opção para interpretar seus argumentos de linha de comando como texto a ser pesquisado. A maneira normal de grep
uma string é canalizar a string para grep
a entrada padrão:
$ echo 'There once was a man from Nantucket
Who kept all his cash in a bucket.
But his daughter, named Nan,
Ran away with a man
And as for the bucket, Nantucket.' | grep -i nan
There once was a man from Nantucket
But his daughter, named Nan,
And as for the bucket, Nantucket.
$
Como você vê aqui, você pode echo
seqüências de caracteres contendo mais de uma linha de texto. Você pode até digitá-los no shell interativamente, se quiser.
Se isso não atender às suas necessidades, talvez você possa explicar por que a tubulação não é uma solução aceitável?
grep
? Então, talvez algo comoprintf "various\ntext to grep here" | grep "text"
irá produzir "texto para grep aqui"