У меня установлен GnuWin на компьютере с Windows 7 Enterprise SP1 x64. Я пытаюсь использовать grep 2.5.3 для сопоставления строк, содержащих слово «true». Вот мой рабочий вариант использования:
(echo true& echo true2) | grep 'true' Выше соответствует обе строки. Теперь я хочу исключить вторую строку, используя привязку конца строки $(знак доллара). Я пробовал следующие варианты, ни один из которых не соответствует ни одной из строк:
(echo true& echo true2) | grep 'true$' (echo true& echo true2) | grep 'true\$' (echo true& echo true2) | grep 'true\\$' (echo true& echo true2) | grep 'true\\\$' (echo true& echo true2) | grep 'true\\\\$' (echo true& echo true2) | grep 'true\\\\\$' (echo true& echo true2) | grep 'true\\\\\\$' (echo true& echo true2) | grep 'true^$' (echo true& echo true2) | grep 'true^^$' (echo true& echo true2) | grep 'true^^^$' (echo true& echo true2) | grep 'true^^^^$' (echo true& echo true2) | grep 'true^^^^^$' (echo true& echo true2) | grep 'true^^^^^^$' (echo true& echo true2) | grep 'true$$' (echo true& echo true2) | grep 'true\^$' (echo true& echo true2) | grep 'true^\$' (echo true& echo true2) | grep 'true\\^$' (echo true& echo true2) | grep 'true\^\$' (echo true& echo true2) | grep 'true^\\$' (echo true& echo true2) | grep 'true\^^$' (echo true& echo true2) | grep 'true^\^$' (echo true& echo true2) | grep 'true^^\$' (echo true& echo true2) | grep 'true\\\^$' (echo true& echo true2) | grep 'true\\^\$' (echo true& echo true2) | grep 'true\^\\$' (echo true& echo true2) | grep 'true^\\\$' (echo true& echo true2) | grep 'true\\^^$' (echo true& echo true2) | grep 'true\^\^$' (echo true& echo true2) | grep 'true^\\^$' (echo true& echo true2) | grep 'true\^^\$' (echo true& echo true2) | grep 'true^\^\$' (echo true& echo true2) | grep 'true^^\\$' (echo true& echo true2) | grep 'true\^^^$' (echo true& echo true2) | grep 'true^\^^$' (echo true& echo true2) | grep 'true^^\^$' (echo true& echo true2) | grep 'true^^^\$' Я также попробовал все вышеперечисленное, используя двойные кавычки вместо одинарных, которые тоже не работали. Кто-нибудь знает, как привязать регулярное выражение к концу строки, так что совпадает только первая строка из моего примера ("true")? Благодарю.
Ах, хороший улов с проблемой пробелов. Тем не менее, ваш подход GnuWin все еще не работает для меня. Возможно, я что-то пропустил:
(echo true & echo true2) | grep "true $"все еще ничего не соответствует.