Как экранировать ранее неизвестную строку в регулярном выражении?

Мне нужно egrep строку, которая неизвестна до выполнения и которую я получу через переменную оболочки (оболочка - bash, если это важно). Проблема в том, что эта строка будет содержать специальные символы, такие как скобки, пробелы, точки, косые черты и так далее.

Если я знаю строку, я могу экранировать специальные символы по одному, но как я могу сделать это для всей строки?

Прогон строки через сценарий sed для префиксации каждого специального символа с \ может быть идеей, мне все еще нужно rtfm, как такой сценарий должен быть написан. Я не знаю, есть ли другие, лучшие варианты.

Я прочитал re_format(7), но, похоже, там нет такой вещи, как "принимать всю следующую строку как литерал"...

EDIT: чтобы избежать ложных срабатываний, я также должен добавить определение новой строки в шаблон, например egrep '^myunknownstring'

7
задан Luke404 20 March 2011 в 16:18
поделиться