Мне нужно найти переменную PHP $someVar
. Тем не менее, Grep думает, что я пытаюсь запустить регулярное выражение и жалуется:Grep не как регулярное выражение
$ grep -ir "Something Here" * | grep $someVar
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
$ grep -ir "Something Here" * | grep "$someVar"
<<Here it returns all rows with "someVar", not only those with "$someVar">>
Я не вижу вариант для говоря Grep не интерпретировать строку как регулярное выражение, но включить $
как просто еще один символ строки.
В этом вопросе основная проблема заключается не в 'grep' интерпретации' $ 'как регулярного выражения. Речь идет о оболочке, заменяющей '$ someVar' значением переменной окружения' someVar', вероятно, пустой строкой. Второй пример не должен возвращать все строки с 'someVar', но все строки, потому что пустая строка находится во всех строках. Чтобы заставить оболочку не заменять, вы должны использовать '' $ someVar'' или '\ $ someVar'. Тогда вам придется иметь дело с интерпретацией '' '' '' '' '' 'grep'. –
@ ChristopheDrevet-Droguet: Спасибо за объяснение, я был озадачен относительно нисходящего! Ваш комментарий достаточно информативен, чтобы быть ответом, на самом деле это был бы один из лучших ответов на странице, если это так. – dotancohen