Я пытаюсь grep все line breaks after some binary operators в проекте с использованием git bash на компьютере под управлением Windows.git grep <regex, содержащий newline>
Пробовал следующие команды, которые не работают:
$ git grep "[+-*\|%]\ *\n"
fatal: command line, '[+-*\|%]\ *\n': Invalid range end
$ git grep "[+\-*\|%]\ *\n"
fatal: command line, '[+\-*\|%]\ *\n': Invalid range end
ОК, я не знаю, как включить «-» в наборе символов, но все же после его удаления в \n
соответствует символу n
буквально :
$ git grep "[+*%] *\n"
somefile.py: self[:] = '|' + name + '='
^^^
Экранирование обратной косой черты один раз (\\n
) не имеет никакого эффекта, и избежать его дважды (\\\n
) вызывает регулярное выражение, чтобы соответствовать \n
(в буквальном смысле).
Каков правильный способ grep здесь?
Спасибо! Мне пришлось использовать 'grep '[- + * |%] \ s * $'' для учета окончаний строк Windows. Оказывается, я также могу найти ответ в [grep manual] (https://www.gnu.org/software/grep/manual/grep.html#Character-Classes-and-Bracket-Expressions). См. Также: [Лучше ли использовать git grep, чем простой grep, если мы хотим искать в версированном исходном коде?] (Http://stackoverflow.com/questions/17557684/is-it-better-to-use-git- Grep, чем обычная-Grep-если-мы-хочу к поиску-в-версированной-х годов) – AXO