Мне нужно egrep
строка, которая не известна до выполнения и которую я получу через переменную оболочки (shell - это bash, если это имеет значение).Проблема в том, что строка будет содержать специальные символы, такие как фигурные скобки, пробелы, точки, косые черты и т. Д.
Если я знаю строку, я могу экранировать специальные символы по одному, но как я могу это сделать?для всей строки?
Выполнение строки через сценарий sed для префикса каждого специального символа с \ может быть идеей, мне все еще нужно rtfm, как должен быть написан такой сценарий.Я не знаю, есть ли другие, лучшие, варианты.
Я прочитал re_format(7)
, но, похоже, не существует такой вещи, как "взять всю следующую строку как литерал" ...
РЕДАКТИРОВАТЬ: чтобы избежать ложных срабатываний, я должен также добавить обнаружение новой строки в шаблон, например.egrep '^myunknownstring'