Как избежать метасимволов для egrep, как метакод из Perl?

Perl имеет функцию metaquote() чтобы избежать всех специальных символов для регулярного выражения.

Существует ли эквивалентная техника для egrep ?

Пример. Если я ищу строку abc.def.ghi , мне нужно помнить, что нужно избегать точек вручную, например, abc\.def\.ghi

Я предполагаю, что egrep не имеет встроенного режима / функции для этого, но я открыт для «однострочных» в Perl / sed / awk для имитации metaquote() для egrep . Кроме того, metaquote() Perl может работать в тривиальных случаях, но синтаксис регулярного выражения отличается между egrep и perl .

2 Solutions collect form web for “Как избежать метасимволов для egrep, как метакод из Perl?”

Используйте опции -F , чтобы сделать шаблон лечения grep как фиксированную строку:

 grep -F 'abc.def.ghi' <file 

А также обратите внимание, что вам не нужно вызывать egrep .

Вы должны сделать это сами: эта команда sed quotemeta любого не-буквенно-цифрового символа, что и делает quotemeta (IIRC)

 str="abc.def.ghi" escaped=$(sed 's/[^[:alnum:]]/\\&/g' <<< "$str") echo "$escaped" # => abc\.def\.ghi 
  1. мы ожидаем, что это будет соответствовать, потому что оно использует исходную строку как регулярное выражение

     $ echo "foo bar abc-def-ghi baz" | grep "$str" foo bar abc-def-ghi baz 
  2. мы ожидаем, что это не будет соответствовать, потому что оно использует экранированную строку.

     $ echo "foo bar abc-def-ghi baz" | grep "$escaped" $ echo $? 1 
  3. мы ожидаем, что это будет соответствовать, потому что оно использует экранированную строку.

     $ echo "foo bar abc.def.ghi baz" | grep "$escaped" foo bar abc.def.ghi baz 
  • Удалите слова (буквы, за которыми следует пробел) из определенного столбца
  • что означает «^ $ 1» в сценарии оболочки?
  • Как удалить теги html из файла с помощью sed?
  • Почему одно и то же sed regex (после grep) выходит из строя при запуске в сценарии bash или командной строке bash?
  • Переименование файлов добавляет тире после четвертого и шестого символов
  • Как вставить переменную vimscript и строку в vim искать и заменять
  • Поиск и замена строк, которые не являются подстроками других строк
  • Извлечение IP-адреса из текста и сохранение его в переменной
  • Как выполнить трассировку стека с помощью grep и regex?
  • Как совместить две строки сразу в vim
  • grep эквивалент регулярного выражения kwrite +
  • Interesting Posts

    Как подключиться к Bluetooth-гарнитуре на Debian 8.1

    Как получить мое приложение в списке приложений?

    «Нет такого файла или каталога», когда я пытаюсь отформатировать логический том

    Как предотвратить удаленный вход ssh из-за нарушения dbus?

    Есть ли дополнительная опция для отображения скрытой команды на терминале?

    USB Ubuntu с шифрованием всего диска

    Открыть экранный процесс в терминале из сценария

    Передача данных через SSH непосредственно в томе Truecrypt

    Расширение виртуального жесткого диска для CentOS

    Перемещение нескольких файлов из каталога в другой с помощью заметной ошибки

    Может ли кто-нибудь помочь мне интерпретировать результаты iozone?

    Если удалять группы, удаляются ли пользователи из этих групп?

    Стоп-стопы / автопогрузчики

    могу ли я использовать ssh для отправки команды сборки для построения Android?

    Всегда ли вход клавиатуры проходит через управляющий терминал?

    Linux и Unix - лучшая ОС в мире.