grep
не имеет возможности интерпретировать аргументы командной строки как текст для поиска. Нормальный путь к grep
строке - передать строку в 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.
$
Как вы видите здесь, вы можете echo
строки, содержащие более одной строки текста. Вы даже можете вводить их в оболочку в интерактивном режиме, если хотите.
Если это не отвечает вашим потребностям, возможно, вы могли бы объяснить, почему трубопровод не является приемлемым решением?
grep
? Так что, может быть, что-то подобноеprintf "various\ntext to grep here" | grep "text"
выдаст «текст для grep здесь»