É possível. Tente isto:
grep 'hello' <<< 'hello world'
Você também pode passar uma variável contendo uma string:
str='hello world'
grep 'hello' <<< $str
É possível passar uma string relativamente grande para grep
ou só aceita um arquivo?
Note que não estou falando de piping output para grep, mas fazendo algo como:
grep 'hello' 'hello world'
(o que obviamente não funciona, pelo menos não é assim)
É possível. Tente isto:
grep 'hello' <<< 'hello world'
Você também pode passar uma variável contendo uma string:
str='hello world'
grep 'hello' <<< $str
grep
não tem uma opção para interpretar seus argumentos de linha de comando como texto a ser pesquisado. O caminho normal para grep
uma string é canalizar a string para a entrada padrão de grep
:
$ 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
strings contendo mais de uma linha de texto. Você pode até mesmo 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?