Использование Grep на Cygwin для поиска «employee_id» со следующими условиями:Экранирование метасимволов с помощью Grep на Cygwin
- Не предваряется подчеркиванием
- Сразу следует либо пространство, закрытые скобку, или период
выражение, которое следует работы в Regex Builder 2.05, используя образец текста, но не возвращает результаты при использовании в Grep как таковой:
grep -E -r '[^_]employee_id[ \]\.]' ./*
Я не уверен, что это какая-то особенность ввода выражений через командную строку или если она связана с различиями между многими диалектами регулярных выражений, но я не сталкивался с каким-либо альтернативным способом экранирования символов в моем поиске ответа.
Может ли кто-нибудь предоставить правильный синтаксис grep, чтобы вернуть результаты, которые я ищу?
Спасибо за быстрый ответ. Хороший улов в первом пункте, и я не думал о том, что вам не нужно избегать точки, но это имеет смысл. К сожалению, ваше решение также не дало никаких результатов, хотя я знаю, что есть совпадения. – SiliconBadger
Я действительно обновил его перед вашим комментарием. Используйте 'grep -E -r '(^ | [^ _]) employee_id [].]' .' – anubhava
Очень интересно! Раньше я задавался вопросом, не ушел ли я от закрытой скобки, если поймает, что есть еще одна закрытая скобка, охватывающая класс символов, но это не сработало. Теперь я вижу, что закрытая скобка должна немедленно следовать за открытой скобкой, и я не думал об этом. Спасибо за вашу помощь! – SiliconBadger